加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何通过id缓存查找对象

发布时间:2020-12-17 03:22:51 所属栏目:百科 来源:网络整理
导读:select * from Foo where id = 200 如何通过id缓存查找对象,因为我们观察到一直在某个id上进行select调用.我们应该如何以非突兀的方式在rails中启用它,以便我们可以在将来的任何缓存存储之间切换(比如memcached或redis) 编辑: 与基于Hibernate的缓存策略org
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,将在保存或触摸时自动更新.就像我说的那样,它是测试版,但它解决了这个问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读