mongodb - 正在寻找 DynamoDB/MongoDB+Redis 组合?

标签 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

最佳答案

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

顺便说一句,10 次读取/秒不算什么。如果您正确地为模式建模,DynamoDB 每秒可以处理 1000 万次。

关于mongodb - 正在寻找 DynamoDB/MongoDB+Redis 组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56514022/

相关文章:

amazon-dynamodb - 是否可以在 DynamoDB 中通过查询或扫描对结果进行排序?

mongodb - 基于数组 Mongoose/Mongodb 中嵌套子文档的 desc 值对查询结果进行排序

java - 如何使用 Java 代码访问您的 AWS Redis 缓存实例?

caching - BGSAVE之后,Redis会立即删除我的所有 key

redis - 在 Redis 中,如何通过从第二个排序集中排除记录来将记录与第一个集分开。?

amazon-web-services - AWS 数据管道从 S3 存储桶导入到位于不同区域的 dynamoDB 表时出错

Python-递归转换为字典列表中的字符串

javascript - 通过 ID 查找 MongoDB 文档

python - 将字典/json 键转换为 MongoDB 可接受的最快方法(将 "."和 "$"转换为其他内容)

javascript - 使用 EventSourcing(NodeJS、MongoDB、JSON)跨多个偶尔连接的客户端同步数据