我一直在使用 MongoDB 来存储和查询无模式的 json 文档(约 10 百万条记录)。查询通常涉及查找具有匹配键值对的 json 文档并运行几秒钟。我正在寻找使查询运行得更快的方法,并遇到了 Redis 数据库。转移到 Redis 是个好主意吗?我的用例有更好的数据库吗?
另外,有人可以解释一下我如何在 Redis 中存储无模式的 json 对象(并且以后可以查询它们)吗?
谢谢!
更新:至少从 2017 年 3 月 21 日起,RedisLabs 支持一个名为 RedisJSON 的模块,该模块添加了 JSON 数据类型。
Redis 不执行 JSON,或者更确切地说,它只是将其视为不透明的字符串,但在某些情况下(可能是您的),这就是您所需要的。在这种情况下,按原样存储您的文档并给它一个有意义的键名(例如文档的 id)。
查询有一点点,但就是这样,更棘手。更新插入/删除文档时,您需要为以后要查询的每个 kv 维护一个索引。索引映射值相关的文档 id,因此按值查询意味着首先访问索引,然后获取实际的 JSON 文档。