数据存储用于捕捉投票并对其进行汇总

我感兴趣的是使用Node.js作为套接字服务器与数以万计的客户端进行基于stream的通信。 客户将发送特定内容的投票,并从服务器接收汇总投票logging的近实时更新。

数据存储需要支持:

  1. 储存票
  2. 总结几乎实时的投票
  3. 防止在任意时间段内发生多次投票(例如,客户每1分钟只能投一次内容)

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

我强烈build议Redis 。 这是一个具有设置和列表操作的键/值存储。 它还支持计数器的primefaces操作。 在github上有一个Node.js的Redis客户端。 以下是我将如何实现您的function:

储存票

INCR votes:option:<option> 

总结选票

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

防止多次投票(为客户端IP创build一个到期的locking密钥)

 EXPIRE lock:<encoded ip> 60