繁体   English   中英

MongoDB 缓存或不缓存使用 Redis

[英]MongoDB Cache or Not Cache using Redis

在我的项目中,主数据库是 mongodb,为了缓存,我有 redis。 现在对于长时间和更复杂的查询,我使用 redis 来缓存它们显然更好。

但我想知道我是否应该缓存简单的查询,比如通过 id 查找,或者通过其他一些 mongodb 索引字段查找? 将 redis 用于这种索引查找是否有意义?

或者我应该不缓存这种查询,因为 mongodb 内部已经有很好的缓存机制?

查找 mongodb 索引字段是更快还是查找 redis 更快?

  1. 在 Redis 中查找肯定更快(因为 Redis 的键值特性)。

  2. MongoDB 无法缓存查询结果

MongoDb 是一个数据库,无法为您缓存查询结果。 因为数据可能随时发生变化。 所以管理缓存是 Developer 的责任

但 MongoDB 也有一些很好的内部机制来使用 RAM 以获得更好的性能。(查看问题以获取更多信息)

  1. 数据库查询很昂贵

当您在 MongoDB 中执行查询时,即使是简单的查询,也会有许多过程来查找数据。 但是Redis可以非常非常快地找到一个key。 所以很明显,你必须使用Redis 来保持事物,而MongoDB 只用于永久存储和查询

我的建议:

建议将任何高使用率繁重查询的结果缓存在 Redis、Memcached 或任何其他键值内存存储中。 (每天在 Database/MongoDB 中查找一个简单的帖子一千次是没有意义的。这只是在浪费资源。Cache 系统的首要任务是将高使用率的数据保持在更近的位置)

另外注意你必须有一个很好的“ 缓存失效”机制来更新Redis中的缓存数据。

我建议使用直写技术将模型和数据保存在 Redis 中。

希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM