您好2-3
数千名用户online
。我还有团体,团队和其他(2-3)具有用户的实体。所以对于每一个10 seconds
我来说
想显示在线统计信息(查询用户和其他实体的各种参数)。我相信,每一个用户5 - 30 seconds
都可以改变自己的状态。每1 hour
移动到另一个团队或团队或其他任何人。我应该使用什么no-sql数据库?我没有经验,只知道no-sql非常快,只需阅读Redis, MongoDB, Cassandra
。
当然,我将此数据模型存储在RDBMS中(在线状态和统计信息除外)。
将所有数据存储在json中。使用Redis。 prepend id prefix(EX'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}
...
您会推荐或建议什么?查询这些数据会方便吗? 也许我可以使用一些流行的标准算法来查询统计数据(前monte-carlo algotithm用于百分比统计,我不知道)。感谢
答案 0 :(得分:1)
您可以使用Redis Hyperloglog,这是Redis 2.8.9中添加的功能。 这个blog post描述了如何非常有效地计算一些看起来非常类似于你需要的统计数据。