我想以类似的结构存储一些数据:
"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
答案 0 :(得分:0)
我将使用DynamoDB,并且可能使用adjacency list pattern。对于组中的人数,如果这是您需要经常获得的值,那么我将拥有带外lambda函数,该函数可以对我进行预先计算以满足您的“近实时”要求。我还会去看this video几次。
顺便说一句,每秒10次读取不算什么。如果对模型进行正确建模,则DynamoDB每秒可以完成1000万次。