Um pouco atrasado, mas estou usando o tornado-redis. Funciona com o ioloop do tornado e o
tornado.gen
módulo Instalar tornadoredis
Pode ser instalado a partir do pip
pip install tornadoredis
ou com ferramentas de configuração
easy_install tornadoredis
mas você realmente não deveria fazer isso. Você também pode clonar o repositório e extraí-lo. Então corra
python setup.py build
python setup.py install
Conectar ao redis
O código a seguir vai em seu main.py ou equivalente
redis_conn = tornadoredis.Client('hostname', 'port')
redis_conn.connect()
redis.connect é chamado apenas uma vez. É uma chamada de bloqueio, portanto, deve ser chamada antes de iniciar o ioloop principal. O mesmo objeto de conexão é compartilhado entre todos os manipuladores.
Você pode adicioná-lo às configurações do seu aplicativo, como
settings = {
redis = redis_conn
}
app = tornado.web.Application([('/.*', Handler),],
**settings)
Usar tornadoredis
A conexão pode ser usada em manipuladores como
self.settings['redis']
ou pode ser adicionado como uma propriedade da classe BaseHandler. Seus manipuladores de solicitação subclassificam essa classe e acessam a propriedade. class BaseHandler(tornado.web.RequestHandler):
@property
def redis():
return self.settings['redis']
Para se comunicar com redis, o
tornado.web.asynchronous
e o tornado.gen.engine
decoradores são usados 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}
Informações extras
Mais exemplos e outros recursos, como pool de conexões e pipelines, podem ser encontrados no repositório do github.