在我的项目中,主数据库是mongodb,对于缓存,我有redis。现在,对于更长、更复杂的查询,我最好使用redis来缓存它们。
但是我想知道是应该缓存简单的查询,比如按id查找,还是通过其他mongodb索引字段进行查找?在这种索引查找中使用redis是否有意义?
或者我不应该缓存这种查询,因为mongodb内部已经有了良好的缓存机制。
查找mongodb索引字段更快还是查找redis更快?
发布于 2020-01-05 11:09:59
MongoDB是一个数据库,不能为您缓存查询结果,因为数据可能随时更改。因此管理缓存是开发人员的责任。
但MongoDB也有一些良好的内部机制来使用内存以获得更好的性能。(请查看这问题以获得更多信息)
在MongoDB中执行查询时,会有许多进程需要查找数据,甚至在简单的查询中也是如此。但是Redis很快就能找到一把钥匙。因此很明显,您必须使用Redis来保存,并且只将MongoDB用于永久存储和查询。
我的推荐:
建议在Redis、Memcached或其他键值内存存储中缓存任何高使用率或重型查询的结果。(每天在数据库/MongoDB中查找一个简单的帖子是没有意义的。这只是浪费资源。Cache系统的首要任务是保持高使用率数据更接近)。
还要注意,您必须有一个好的"缓存失效“机制来更新Redis中缓存的数据。
我建议使用 直通式技术将模型和数据保存在Redis中。
我希望这能帮到你。
https://stackoverflow.com/questions/59587616
复制相似问题