use*_*934 3 caching mongodb redis mongodb-query spring-data-redis
在我的项目中,主数据库是 mongodb,为了缓存,我有 redis。现在,对于长且更复杂的查询,我使用 redis 来缓存它们显然更好。
但我想知道是否应该缓存简单的查询,例如按 id 查找,或按其他 mongodb 索引字段查找?使用 redis 进行这种索引查找有意义吗?
或者我应该不缓存这种查询,因为 mongodb 内部已经有很好的缓存机制?
查找 mongodb 索引字段更快还是查找 redis 更快?
Redis 中的查找肯定更快(因为 Redis 的键值性质)。
MongoDB 无法缓存查询结果:
MongoDB 是一个数据库,无法为您缓存查询结果,因为数据可能随时发生变化。因此管理缓存是开发人员的责任。
而且 MongoDB 也有一些良好的内部机制来使用 RAM 以获得更好的性能。(查看此问题以获取更多信息)
当您在 MongoDB 中执行查询时,即使是简单的查询,也会有许多过程来查找数据。但是 Redis 可以非常非常快地找到密钥。因此很明显,您必须使用Redis 来保存内容,而仅使用MongoDB 来进行永久存储和查询。
我的建议:
建议将任何高使用率或繁重查询的结果缓存在 Redis、Memcached 或其他键值内存存储中。(每天在数据库/MongoDB中查找一个简单的帖子一千次是没有意义的。这只是浪费资源。缓存系统的首要职责是让高使用率的数据更接近)
另外注意你必须有一个良好的“缓存失效”机制来更新Redis中的缓存数据。
我建议使用直写技术将模型和数据保存在 Redis 中。
我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
4693 次 |
| 最近记录: |