ruby-on-rails – 如何通过id缓存查找对象
select * from Foo where id = 200 如何通过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 更改:cache_id_here,无论您想要什么,并将期满设置为您的首选项.您可以将此缓存与memcached或您想要的任何替代缓存存储一起使用.您只需在应用程序配置中设置它. UPDATE 我正在研究一种可以通过扩展Rail的.find和.save方法以及缓存结果来解决这个问题的gem.它是超级测试版,尚未经过生产测试,但如果您愿意尝试一下,请查看回购:https://github.com/johnkoht/cache-money-millionaire,让我知道您的想法. 基本上,如果您调用Post.find(3),它将自动查找并创建一个缓存版本,其缓存密钥为Post 3,将在保存或触摸时自动更新.就像我说的那样,它是测试版,但它解决了这个问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |