首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >视图中的Redis缓存不能正常工作。

视图中的Redis缓存不能正常工作。
EN

Stack Overflow用户
提问于 2017-06-22 09:18:00
回答 1查看 601关注 0票数 1

对于缓存,我使用redis。

代码语言:javascript
复制
gem 'redis'
gem 'redis-namespace'
gem 'redis-rails'
gem 'redis-rack-cache'

对视图中的html代码使用缓存

当我使用键设置缓存时,它可以工作。但是当我得到它时,即使价值也不存在。

代码语言:javascript
复制
def cache(cache_name)
  value = $redis.get(cache_name)
  if value.nil?
    $redis.set(cache_name,yield,ex:5.minutes)
  else
    value
  end
end

在望

代码语言:javascript
复制
<% cache("key") do %>
   <h1>Header</h1>
<%end%>

问题是第一次标题显示,但接下来它不显示偶数值。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-22 10:13:53

尝试以下几点

代码语言:javascript
复制
def cache(cache_name)
  Rails.cache.fetch(cache_name, expires_in: 5.minutes){ yield }
end

更新

Rails已经提供了一个用于缓存片段的助手,并且它与您的自定义帮助程序的名称是相同的,所以只需更改方法的名称即可。

代码语言:javascript
复制
def set_cache(cache_name)
  Rails.cache.fetch(cache_name, expires_in: 5.minutes){ yield }
end

你的看法保持不变。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44695232

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档