任务
嗨,我有数以千计的用户2-3 online。我也有小组,团队和其他(2-3)有用户的实体。因此,对于几乎每个10 seconds,我都要显示在线统计数据(查询用户和其他实体的各种参数)。我相信,每个5 - 30 seconds用户都可以改变自己的状态。每个1 hour都会移动到另一个组或团队或其他任何地方。我应该使用哪种非sql数据库?我没有经验,只知道no-sql是相当快的,只是读了一点关于Redis, MongoDB, Cassandra的知识。
当然,我将这个数据模型存储在RDBMS中(在线状态和统计数据除外)。
我在想下一个解决方案:
将所有数据存储在json中。使用Redis。前缀id前缀(例如'user_'+userId)
user_id:{"status":"123", "group":"group_id", "team":"team_id", "firstname":"firstname", "lastname":"lastname", ... other attributes]}
group_id:{users:[user_id,user_id,...], ... other group attributes}
team_id:{users:[user_id,user_id,...], ... other team attributes}
...你会推荐或提议什么?这样的数据查询方便吗?也许我可以使用一些流行的标准算法来查询统计数据(前蒙特卡洛算法用于百分比统计,我不知道)。谢谢
发布于 2014-07-26 01:30:31
您可以使用Redis Hyperloglog,这是Redis2.8.9中添加的一个特性。这个blog post描述了如何非常有效地计算一些看起来与您需要的统计数据非常相似的统计数据。
https://stackoverflow.com/questions/24959773
复制相似问题