Немного поздно, но я использую Торнадо-Редис . Работает с ioloop торнадо и модулем tornado.gen
Установка торнадоредиса
Может быть установлен из пипса
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 вызывается только один раз. Это блокирующий вызов, поэтому его следует вызывать перед запуском основного ioloop. Один и тот же объект соединения используется всеми обработчиками.
Вы можете добавить его в настройки своего приложения, например
settings = {
redis = redis_conn
}
app = tornado.web.Application([('/.*', Handler),],
**settings)
Использовать торнадоредис
Соединение может использоваться в обработчиках как 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.