为什么Rails的ActiveSupport :: Cache :: MemoryStore不适合大型应用程序?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么Rails的ActiveSupport :: Cache :: MemoryStore不适合大型应用程序?相关的知识,希望对你有一定的参考价值。

Rails Documentation中,声明内存存储不适合大型部署,但它没有说明原因:

“此缓存存储不适合大型应用程序部署”

答案

在生产应用程序部署中,您将在许多服务器上运行许多进程来运行Rails应用程序。您的MemoryStore缓存对每个进程都是唯一的。这不允许他们共享缓存,并加剧了变暖和失效的工作。来自doc:

如果您正在运行多个Ruby on Rails服务器进程(如果您使用mongrel_cluster或Phusion Passenger就是这种情况),那么您的Rails服务器进程实例将无法彼此共享缓存数据。此缓存存储不适用于大型应用程序部署,但只适用于只有几个服务器进程或开发和测试环境的小型低流量站点。

以上是关于为什么Rails的ActiveSupport :: Cache :: MemoryStore不适合大型应用程序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Rails 之外使用 Rails 3 的 ActiveSupport 核心扩展 [重复]

运行任何 rails cmnd 时找不到“activesupport”

rails 应用程序未启动,资产上的“ActiveSupport::Deprection”错误:预编译

Rails:我如何需要 ActiveSupport 的rescue_from 方法?

Rails ActiveSupport 时间解析?

rails activesupport 通知 - 错误的数据库运行时值