使用redis和memcached,我还应该使用session api吗?

时间:2011-02-25 04:37:11

标签: ruby-on-rails memcached redis

如果我同时使用redis和memcached,那么仍然使用内置的会话API是否有意义?

据我所知,rails上的ruby可以使用内置的api轻松使用memcached,但我想同时使用memcached和redis。

如果我必须手动访问redis,我何时按照请求连接到它?

3 个答案:

答案 0 :(得分:5)

您仍然可以将Rails会话API与其他商店一起使用,包括RedisMemcached。商店就是 - 存储会话数据的地方。 Rails会话API仍然为您管理会话。

答案 1 :(得分:3)

你没有提到你正在使用Redis和Memcached的上下文(或者你为什么使用它们,或如何),但我猜你正在考虑会话数据和缓存(基于此前面的问题:Rails and caching, is it easy to switch between memcache and redis?

在任何一种情况下,除非你有一个特别不同的用例,否则使用Rails提供的API没有实际价值。

如果您绝对必须使用两者,只需告诉Rails您希望使用哪个存储引擎来执行哪项功能。

如果您正在做其他事情,也许更多信息可以帮助人们提供更多有用的答案。

答案 2 :(得分:-2)

在Ruby中,您可以将数据存储在任何数据存储区中。不确定是否可以使用内置会话API存储到同一会话的Redis和memcached。

如果您手动访问Redis,只需尽可能少地连接它并使用持久连接(如果适用)以提高性能。

对于PHP和其他服务器端脚本语言,您可能不希望使用内置会话管理。许多服务器端脚本语言(即PHP)将会话信息存储在硬盘上的临时目录中。只有会话ID存储在cookie中。 Redis和memcached的一个优点是它们可以避免磁盘访问并将所有会话/用户信息存储在内存中。因此,不要使用内置的会话API,只需使用cookie编写自己的小会话API并与Redis或memcached进行交互。