代码之家  ›  专栏  ›  技术社区  ›  Joe Holloway

如何在应用程序级别激活记录查询缓存?

  •  1
  • Joe Holloway  · 技术社区  · 17 年前

    当调用控制器的操作时,将启用ActiveRecord查询缓存。我还知道您可以这样做,临时为给定代码块的给定模型启用缓存:

    User.cache do  
        ....
    end
    

    但是,是否有一种方法可以为其他上下文启用查询缓存(例如,当使用./script/runner在Rails环境下运行脚本时)?

    3 回复  |  直到 17 年前
        1
  •  3
  •   Jeremy    17 年前

    ActiveRecord查询缓存仅在特定操作(即请求)期间存在。如果您希望缓存的对象能够存活更长时间,或者在进程之间使用,则需要查看类似memcached的内容。

        2
  •  0
  •   pantulis    17 年前

    This plugin 将使用memcached保留查询缓存。

        3
  •  0
  •   rud    17 年前

    一个简单的解决方案是包装给定的代码 script/runner 在一个块中,直接在命令行上:

    script/runner "User.cache { ... }"
    

    注意,缓存不仅仅是为了 User 模型,但用于代码块内执行的所有查询。

    推荐文章