Trochę późno, ale używam tornado-redis. Działa z ioloop tornado i tornado.gen
moduł
Zainstaluj Tornadoredis
Można go zainstalować z pip
pip install tornadoredis
lub za pomocą narzędzi konfiguracyjnych
easy_install tornadoredis
ale naprawdę nie powinieneś tego robić. Możesz także sklonować repozytorium i rozpakować je. Następnie uruchom
python setup.py build
python setup.py install
Połącz z redis
Poniższy kod trafia do twojego main.py lub odpowiednika
redis_conn = tornadoredis.Client('hostname', 'port')
redis_conn.connect()
redis.connect jest wywoływany tylko raz. Jest to wywołanie blokujące, więc powinno zostać wywołane przed uruchomieniem głównej operacji ioloop. Ten sam obiekt połączenia jest współdzielony przez wszystkie programy obsługi.
Możesz dodać go do ustawień aplikacji, takich jak
settings = {
redis = redis_conn
}
app = tornado.web.Application([('/.*', Handler),],
**settings)
Użyj tornadoredis
Połączenie może być używane w programach obsługi jako self.settings['redis']
lub można go dodać jako właściwość klasy BaseHandler. Twoje programy obsługi żądań podklasują tę klasę i uzyskują dostęp do właściwości.
class BaseHandler(tornado.web.RequestHandler):
@property
def redis():
return self.settings['redis']
Aby komunikować się z redis, tornado.web.asynchronous
i tornado.gen.engine
używane są dekoratory
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}
Dodatkowe informacje
Więcej przykładów i innych funkcji, takich jak łączenie połączeń i potoki, można znaleźć w repozytorium github.