【发布时间】:2011-07-04 01:48:04
【问题描述】:
如果我同时使用 redis 和 memcached,仍然使用内置会话 API 是否有意义?
我知道 ruby on rails 可以通过其内置 api 轻松使用 memcached,但我想同时使用 memcached 和 redis。
如果我必须手动访问 redis,我应该在什么时候根据请求连接到它?
【问题讨论】:
标签: ruby-on-rails memcached redis
如果我同时使用 redis 和 memcached,仍然使用内置会话 API 是否有意义?
我知道 ruby on rails 可以通过其内置 api 轻松使用 memcached,但我想同时使用 memcached 和 redis。
如果我必须手动访问 redis,我应该在什么时候根据请求连接到它?
【问题讨论】:
标签: ruby-on-rails memcached redis
在 Ruby 中,您可以将数据存储在任何数据存储中。不确定您是否可以使用内置的会话 API 将同一会话存储到 Redis 和 memcached。
如果您手动访问 Redis,只需尽可能少地连接它,并在适当的情况下使用持久连接来提高性能。
对于 PHP 和其他服务器端脚本语言,您可能不想使用内置会话管理。许多服务器端脚本语言(即 PHP)将会话信息存储在硬盘上的临时目录中。只有会话 ID 存储在 cookie 中。 Redis 和 memcached 的一个优点是它们可以避免磁盘访问并将所有会话/用户信息存储在内存中。因此,与其使用内置的会话 API,不如使用 cookie 编写自己的小型会话 API,并与 Redis 或 memcached 交互。
【讨论】:
您没有提及您在哪些上下文中使用 Redis 和 Memcached(或为什么同时使用两者,或者 如何),但我猜您正在考虑会话数据和缓存(基于这个较早的问题:Rails and caching, is it easy to switch between memcache and redis?)
在任何一种情况下,不使用 Rails 提供的 API 都没有真正的价值,除非您有特别独特的用例。
如果您绝对必须使用两者,只需告诉 Rails 您希望将哪个存储引擎用于哪个功能。
如果你在做其他事情,也许更多的信息会帮助人们给出更有用的答案。
【讨论】: