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. どこかで 1 つのRedisオブジェクトを作成し、それをどこでも直接使用できますか? はいの場合、それを行う方法は?

  2. 操作後に redis オブジェクトを閉じる (切断する) 必要がありますか?

4

2 に答える 2

2

このオブジェクトは、そのような専用の初期化子でインスタンス化できます

RedisConnection = Redis.new

コードでこの Constante を呼び出すことができます。

このオブジェクトは Redis のクライアントです。#connected で常時接続かどうかを試すことができますか? 方法。そして、#再接続できます。

于 2010-07-12T09:52:20.897 に答える
0

私はそれに定数を使用しません。別のオプションは、おそらく次のように、このメソッドを定義することですconfig/initializers/redis.rb:

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

を使用すると、環境変数Redis.connectを使用して接続 URL をカスタマイズできます。REDIS_URL基本的なフォーマットは ですがredis://127.0.0.1:6379、さらに多くのことができます

接続と切断を心配する必要はありません。クライアントは必要なときに初めて接続を試み、接続が失われると、必要に応じて再接続を試みます。

于 2010-08-26T02:59:53.777 に答える