我很确定它确实如此,但我想仔细检查,因为我不确切知道Passenger如何重启rails应用程序。所以,如果我有类似的东西:
Rails.cache.fetch(:my_obj){MyObj.first}
重启后是否会清除所有缓存(这是我的希望)?
答案 0 :(得分:0)
如果您正在使用MemoryStore,那么当Passenger重新启动时,此缓存将消失。
另外,来自API的引用:
如果您正在运行多个Ruby Rails服务器进程(即 如果你正在使用mongrel_cluster 或Phusion Passenger),那意味着 您的Rails服务器进程 实例将无法共享缓存 彼此的数据。
答案 1 :(得分:0)
您可以使用memcached来解决此问题。使用memcached,您甚至可以在重新启动应用服务器后使用缓存数据。但是,如果重新启动memcached,则需要再次缓存数据。