0

我继承了一个看起来像是在使用 memcached 的 Rails 项目。

我有一个控制器,在一种方法中,我将一个值存储在缓存中:

 Rails.cache.write("key", @var)

在随后在同一个控制器中调用的另一种方法中,我将其读回:

@var = Rails.cache.read("key")

并且变量为零。为什么缓存不起作用?我刚刚开始使用 ROR,所以很有可能它是非常基本的东西。

4

1 回答 1

0

只需检查几件事:

  1. 您是否在开发环境中启用了缓存?

    您没有说您使用的是哪个版本的 RoR,但是默认情况下development环境中未启用缓存。

    要启用它,请config.action_controller.perform_caching = trueconfig/environments/development.rb文件中设置。

  2. 您是否启动了 memcached 服务器?

    如果没有,请从memcached -vv

如果当您尝试写入缓存时您的 memcached 服务器已关闭,则调用Rails.cache.write将返回false,随后的调用Rails.cache.read将因此返回nil

于 2013-07-11T08:41:12.050 回答