Rails缓存与memcached,得到不工作



我遇到了一个声称使用memcached的现有Rails项目。作为测试,我试着用

将对象放入缓存中
Rails.cache.write("gateway", @gateway)

然后用

检索
 Rails.cache.read("gateway", @gateway)

然而这返回nil,为什么呢?

这是在开发环境中,memcached已经安装并运行,并且应该通过条目配置启用。Cache_classes = true, config.action_controller. conf = true。Perform_caching = true

Rails项目以各种不同的方式使用memcached,但如果你在Rails 3项目上工作,那么我建议他们可能使用'dalli' gem,它使用memcached会话存储。所以使用缓存可以是这样的session[:gateway] = @gateway和相反的@gateway = session[:gateway]另一种方式是memcache.set('gateway',@gateway')memcache.get('gateway')

将有助于查看配置代码。检查/config/initializers/session_store.rb是否有类似Rails.application.config.session_store :dalli_store ............的内容

也正如在评论中所说,如果你在开发缓存可能会关闭。检查您的config/development.rb文件是否包含以下内容:config.action_controller.perform_caching = false

另一件事是你需要在你的操作系统上安装memcached 对于linux,这是sudo apt-get install memcached,可以通过ps aux | grep memcache检查(这应该显示两个进程grep和memcache)

还应该查看rails缓存指南

相关内容

  • 没有找到相关文章

最新更新