Ruby on rails RubyonRails中的持久性?

Ruby on rails RubyonRails中的持久性?,ruby-on-rails,persistence,Ruby On Rails,Persistence,有没有办法在RoR中的页面加载之间持久化数据?我想我正在寻找类似memcached的东西,但是没有TCP/IP的开销。例如,PHP就有 理想的解决方案是在内存中存储一些东西。为什么不将其存储在会话中呢?会话可以有多个后端,比如memcache,甚至一个数据库。我认为在本地部署memcache是可能的,所以这并不重要 另一种可能性是使用文件后端并将其存储在RAM驱动器上。但是也许有一些ruby的内存库可以让你直接将这些结果存储到ram中,但我对此没有经验。有多少数据?如果这个值很小,您可以将其存储

有没有办法在RoR中的页面加载之间持久化数据?我想我正在寻找类似memcached的东西,但是没有TCP/IP的开销。例如,PHP就有


理想的解决方案是在内存中存储一些东西。

为什么不将其存储在会话中呢?会话可以有多个后端,比如memcache,甚至一个数据库。我认为在本地部署memcache是可能的,所以这并不重要


另一种可能性是使用文件后端并将其存储在RAM驱动器上。但是也许有一些ruby的内存库可以让你直接将这些结果存储到ram中,但我对此没有经验。

有多少数据?如果这个值很小,您可以将其存储在会话数据中(即
会话[:my_data]=“foo”
)。

基于cookie的会话存储速度非常快,不需要服务器端存储或获取,是安全的,Rails是默认的。只要数据小于4K,就没有理由不使用它。

我不会将TCP/IP组件称为“开销”——除非您在另一种状态或其他情况下运行memcached服务器。Memchached可以在本地运行,rails可以很好地使用它。也许memcached甚至可以使用套接字文件而不是IP和端口,但我没有研究过这一点,你也可以序列化ActiveRecord模型。查看方法。

您不想为此使用cookie,原因如下:通常,会话包含非常少量的数据,如用户ID。在这些情况下,将其与浏览器将要发送的cookie一起发送并不重要。但我同意,任何需要更多数据的东西都应该通过服务器端存储。