我想存储一些具有类似结构的数据:
"groups": {
"g01": {
"person_id_01": {
"active": true
...
},
"person_id_02": {
"active": true
...
},
"person_id_03": {
"active": false
...
}
},
"g02": {
"person_id_04": {
"active": true
...
},
"person_id_05": {
"active": false
...
},
"person_id_06": {
"active": false
...
}
},
...
}
所以我有组,每个组中的人都有一些参数。 我需要近乎实时地监控每个群组,比如每个群组中有多少活跃用户。因此,为此我必须每秒查询一次数据库。如果我启动多个应用程序来扩展我的应用程序,它们将监视不同的组,因此读取次数会越来越多。如果我监控 10 个组,它可能是来自不同应用程序的 10 次读取/秒。
因此,对于此,DynamoDB 可能并不理想,我正在考虑使用 Redis,但在 Redis 中,在像这样的复杂数据结构中存储和搜索似乎有问题。
对于存储此数据并访问多个应用程序的近乎实时的数据(例如群组中的活跃人数),您有何建议? 如果这些不适合这个用例,我也可以使用不同的数据库。
谢谢, z
最佳答案
我会使用 DynamoDB,可能还会使用 adjacency list pattern .对于一组中的人数,如果这是您需要经常获得的值,我将有一个带外 lambda 函数,可以为我预先计算以满足您的“近实时”要求。我也会去看this video几次。
顺便说一句,10 次读取/秒不算什么。如果您正确地为模式建模,DynamoDB 每秒可以处理 1000 万次。
关于mongodb - 正在寻找 DynamoDB/MongoDB+Redis 组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56514022/