【问题标题】:Is ActiveSupport::Cache::MemoryStore cleared up rails restart with Passenger?ActiveSupport::Cache::MemoryStore 是否清除了使用Passenger 重新启动的轨道?
【发布时间】:2009-12-29 18:29:40
【问题描述】:

我很确定确实如此,但我想仔细检查一下,因为我不知道Passenger 是如何重新启动rails 应用程序的。所以如果我有类似的东西:

Rails.cache.fetch(:my_obj) { MyObj.first }

重新启动时是否会清除所有缓存(这是我的希望)?

【问题讨论】:

  • 如果您有任何疑问,应该很容易测试。

标签: ruby-on-rails passenger activesupport


【解决方案1】:

如果您使用的是 MemoryStore,那么是的,当乘客重新启动时,此缓存将消失。

另外,引用 API:

如果您正在运行多个 Ruby Rails 服务器进程(即 如果您使用的是 mongrel_cluster 或 Phusion 乘客),那么这意味着 你的 Rails 服务器进程 实例将无法共享缓存 数据。

【讨论】:

    【解决方案2】:

    您可以使用 memcached 来解决这个问题。使用 memcached,即使重新启动应用服务器,您也应该能够使用缓存的数据。但是,如果你重启 memcached,数据将需要再次缓存。

    【讨论】:

    • 他实际上希望在重新启动时清除缓存,因此 memcached 不会很好(尽管如果需要,您可以轻松手动清除 memcached)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-27
    • 1970-01-01
    • 2022-06-15
    相关资源
    最近更新 更多