gpt4 book ai didi

ruby - mongoid查询缓存

转载 作者:数据小太阳 更新时间:2023-10-29 06:35:32 24 4
gpt4 key购买 nike

Rails 的 ActiveRecord 有一个称为查询缓存 (ActiveRecord::QueryCache) 的功能,它在请求的生命周期内保存 SQL 查询的结果。虽然我不太熟悉实现的内部结构,但我认为它将查询结果保存在 Rack env 中的某个位置,该结果在请求结束时被丢弃。

不幸的是,Mongoid 当前不提供这样的功能,并且由于某些查询隐式发生(引用)这一事实而加剧了这种情况。我正在考虑实现此功能,而且我很好奇,应该在何处以及如何连接 Mongoid(或者,也许是 mongo 驱动程序?)以实现此功能。

最佳答案

Mongoid 有缓存,在 http://mongoid.org/en/mongoid/docs/extras.html 下描述

MongoDB本身也有缓存能力:http://www.mongodb.org/display/DOCS/Caching

mongoid 缓存额外知道 2 种不同的情况:缓存模型的所有查询或缓存查询。

Mongoid 缓存的工作方式似乎略有不同:它看起来像 mongoid 委托(delegate)缓存到 mongodb。 (在 mongoid 的源代码中我只能找到缓存的选项设置,但没有缓存模块。)

最后要说的是,缓存在一般情况下并没有真正的区别——在内存中实际上是在内存中!无论是在应用程序中还是在数据库中。

我不喜欢实现额外的缓存算法,因为这似乎是多余的并且是 RAM killer 。

顺便说一句:如果您真的想在应用程序中缓存结果,您可以尝试使用 Rails.cache 或其他缓存 gem 作为解决方法。

关于ruby - mongoid查询缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6112420/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com