0

我正在使用 rails 2.3.8 和 redis。

在我的控制器中,每次我想访问 redis 时,我都会创建一个新的 Redis 对象,例如:

class AbcController < ApplicationController
  def index
     redis => Redis.new
     redis.xxx
  end

  def list
     redis => Redis.new
     redis.xxx
  end
end

我觉得这很糟糕,我在这里有一些问题:

  1. 我们可以在某个地方创建一个Redis 对象,并且可以在任何地方直接使用它吗?如果是,该怎么做?

  2. 操作后是否需要关闭(断开)redis对象?

4

2 回答 2

2

您可以在这样的专用初始化程序中实例化此对象

RedisConnection = Redis.new

在你可以在你的代码中调用这个 Constante 之后。

此对象是 Redis 的客户端。因此,您可以通过#connected 尝试是否始终连接?方法。你可以#reconnect它。

于 2010-07-12T09:52:20.897 回答
0

我不会为此使用常量。另一种选择是定义此方法,可能在config/initializers/redis.rb

def redis
  Thread.current[:redis] ||= Redis.connect
end

UsingRedis.connect允许您使用REDIS_URL环境变量自定义连接 URL。基本格式是redis://127.0.0.1:6379,但你可以做更多

您无需担心连接和断开连接。客户端将在第一次需要时尝试连接,如果连接丢失,它将根据需要尝试重新连接。

于 2010-08-26T02:59:53.777 回答