用于捕获投票的数据存储&汇总它们

时间:2010-03-25 12:31:46

标签: javascript database node.js

我有兴趣将Node.js用作套接字服务器,以便与成千上万的客户端进行基于流的通信。客户将发送特定内容的投票,并从服务器接收汇总投票结果的近实时更新。

数据存储区需要支持:

  1. 存储投票
  2. 近乎实时地总结投票
  3. 在任意时间段内防止多次投票(例如,客户每1分钟只能投票一次)
  4. 已经有Node.js客户端库的东西会更好。

1 个答案:

答案 0 :(得分:2)

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

存储投票

INCR votes:option:<option>

总结选票<​​/ h3>
MGET votes:option:<option1> votes:option:<option2> ... votes:option:<optionN>

防止多次投票(为客户端IP创建过期锁定密钥)

EXPIRE lock:<encoded ip> 60