寻找DynamoDB / MongoDB + Redis混合物吗?

时间:2019-06-09 10:58:51

标签: mongodb redis amazon-dynamodb

我想以类似的结构存储一些数据:

"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

1 个答案:

答案 0 :(得分:0)

我将使用DynamoDB,并且可能使用adjacency list pattern。对于组中的人数,如果这是您需要经常获得的值,那么我将拥有带外lambda函数,该函数可以对我进行预先计算以满足您的“近实时”要求。我还会去看this video几次。

顺便说一句,每秒10次读取不算什么。如果对模型进行正确建模,则DynamoDB每秒可以完成1000万次。