我有兴趣将Node.js用作套接字服务器,以与数以万计的客户端与基于流的通信。客户将为特定内容发送投票,并从服务器中收到近乎实现的时间更新。

数据存储需要支持:

  1. 存储选票
  2. 总结近实时的选票
  3. 在任意时间段内预防多票(例如,客户只能每1分钟投票一次,每1分钟一次)

已经具有node.js客户端库的东西是可取的。

有帮助吗?

解决方案

我强烈推荐 Redis. 。它是带有设置和列表操作的密钥/值存储。它还支持计数器的原子操作。有一个redis的客户node.js的客户端可用 github. 。这是我将如何实现您的功能:

存储选票

INCR votes:option:<option>

总结选票

MGET votes:option:<option1> votes:option:<option2> ... votes:option:<optionN>

防止多票(为客户端IP创建到期的锁定密钥)

EXPIRE lock:<encoded ip> 60
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top