有没有办法在 RoR 中的页面加载之间保留数据?我想我正在寻找类似 memcached 的东西,但没有 TCP/IP 的开销。例如,PHP 有APC。
理想的解决方案是内存中的东西。
有没有办法在 RoR 中的页面加载之间保留数据?我想我正在寻找类似 memcached 的东西,但没有 TCP/IP 的开销。例如,PHP 有APC。
理想的解决方案是内存中的东西。
你为什么不把它存储在会话中?会话可以有多个后端,如 memcache 甚至一个数据库。我认为可以在本地部署 memcache,所以没关系。
另一种可能性是使用文件后端并将其存储在 RAM 驱动器上。但也许有一些用于 ruby 的内存库可以让你将这些结果直接存储到 ram 中,但我没有这方面的经验。
基于 cookie 的会话存储速度很快,不需要服务器端存储或获取,安全,并且是 Rails 的默认设置。只要数据小于 4K,就没有理由不使用它。
多少数据?如果这很小,您可以将其存储在会话数据中(即session[:my_data] = "foo"
)。
我不会将 TCP/IP 组件称为“开销”——除非您在其他状态或其他情况下运行 memcached 服务器。Memchached 可以很好地在本地运行,并且 rails 可以很好地使用它。也许 memcached 甚至可以使用套接字文件而不是 IP 和端口,但我还没有研究过这个
您还可以序列化 ActiveRecord 模型。请参阅序列化方法。