首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Redis的MongoDB缓存或不缓存

问使用Redis的MongoDB缓存或不缓存
EN

Stack Overflow用户
提问于 2020-01-04 03:13:16
回答 1查看 3.1K关注 0票数 2

在我的项目中,主数据库是mongodb,对于缓存,我有redis。现在,对于更长、更复杂的查询,我最好使用redis来缓存它们。

但是我想知道是应该缓存简单的查询,比如按id查找,还是通过其他mongodb索引字段进行查找?在这种索引查找中使用redis是否有意义?

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

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

EN

回答 1

Stack Overflow用户

发布于 2020-01-05 11:09:59

  1. 在Redis中查找绝对是更快的(因为Redis的键值特性)。
  2. MongoDB无法缓存查询的结果

MongoDB是一个数据库,不能为您缓存查询结果,因为数据可能随时更改。因此管理缓存是开发人员的责任。

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

  1. DataBase查询是昂贵的

在MongoDB中执行查询时,会有许多进程需要查找数据,甚至在简单的查询中也是如此。但是Redis很快就能找到一把钥匙。因此很明显,您必须使用Redis来保存,并且只将MongoDB用于永久存储和查询。

我的推荐:

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

还要注意,您必须有一个好的"缓存失效“机制来更新Redis中缓存的数据。

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

我希望这能帮到你。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59587616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档