我对使用node.js作为套接字服务器与成千上万的客户机进行基于流的通信感兴趣。客户端将发送特定内容的投票,并从服务器接收聚合投票计数的近实时更新。
数据存储需要支持:
储存选票
近实时汇总投票
在任意时间段内防止多次投票(例如,客户端每1分钟只能对一段内容投票一次)
对于node.js,最好是已经有了客户端库的程序。

最佳答案

我强烈推荐Redis。它是一个具有set和list操作的键/值存储。它还支持计数器的原子操作。github上提供了node.js的redis客户端。以下是我将如何实现您的功能:
储存选票

INCR votes:option:<option>

总结投票
MGET votes:option:<option1> votes:option:<option2> ... votes:option:<optionN>

阻止多个投票(为客户端IP创建过期的锁定密钥)
EXPIRE lock:<encoded ip> 60

10-05 20:43
查看更多