少し遅れましたが、tornado-redisを使用しています。これは、tornadoのioloopおよびtornado.gen
で動作します モジュール
tornadoredisをインストールする
pipからインストールできます
pip install tornadoredis
またはsetuptoolsを使用
easy_install tornadoredis
しかし、あなたは本当にそうすべきではありません。リポジトリのクローンを作成して抽出することもできます。次に実行します
python setup.py build
python setup.py install
redisに接続
次のコードは、main.pyまたは同等のものに含まれます
redis_conn = tornadoredis.Client('hostname', 'port')
redis_conn.connect()
redis.connectは1回だけ呼び出されます。これはブロッキング呼び出しであるため、メインioloopを開始する前に呼び出す必要があります。同じ接続オブジェクトがすべてのハンドラー間で共有されます。
のようにアプリケーション設定に追加できます
settings = {
redis = redis_conn
}
app = tornado.web.Application([('/.*', Handler),],
**settings)
tornadoredisを使用する
この接続は、ハンドラーでself.settings['redis']
として使用できます。 または、BaseHandlerクラスのプロパティとして追加できます。リクエストハンドラはそのクラスをサブクラス化し、プロパティにアクセスします。
class BaseHandler(tornado.web.RequestHandler):
@property
def redis():
return self.settings['redis']
redisと通信するには、tornado.web.asynchronous
およびtornado.gen.engine
デコレータが使用されます
class SomeHandler(BaseHandler):
@tornado.web.asynchronous
@tornado.gen.engine
def get(self):
foo = yield gen.Task(self.redis.get, 'foo')
self.render('sometemplate.html', {'foo': foo}
追加情報
その他の例や、接続プールやパイプラインなどの他の機能は、githubリポジトリにあります。