Joe*_*Joe 5 hibernate ruby-on-rails dalli
select * from Foo where id = 200
Run Code Online (Sandbox Code Playgroud)
如何通过id缓存查找对象,因为我们观察到一直在某个id上进行select调用.我们应该如何以非突兀的方式在rails中启用它,以便我们可以在将来的任何缓存存储之间切换(比如memcached或redis)
编辑:
与基于Hibernate的缓存策略非常类似, org.hibernate.annotations.CacheConcurrencyStrategy.READ_WRITE后者适用于Java EE中的所有Entity类.
您可以简单地使用rails的内置缓存
Rails.cache.fetch :cache_id_here, :expires_in => 1.days do
Model.find(id)
end
Run Code Online (Sandbox Code Playgroud)
:cache_id_here根据您的需要进行更改,并根据您的喜好设置到期时间。您可以将此缓存与 memcached 或您想要的任何替代缓存存储一起使用。您只需在应用程序配置中进行设置即可。
更新
我正在开发一个 gem,它通过扩展 Rail 的 .find 和 .save 方法以及缓存结果来解决这个问题。它是超级测试版,尚未在生产中进行测试,但如果您愿意尝试一下,请查看存储库: https: //github.com/johnkoht/cache-money-millionaire并让我知道您的想法。
本质上,如果您调用,Post.find(3)它会自动查找并创建一个缓存版本,其中的缓存键Post 3将在保存或触摸时自动更新。就像我说的,它是测试版,但它解决了问题。
| 归档时间: |
|
| 查看次数: |
2413 次 |
| 最近记录: |