Trochu pozdě, ale používal jsem tornado-redis. Funguje s ioloop tornado a tornado.gen
modul
Nainstalujte tornadoredis
Lze jej nainstalovat z pip
pip install tornadoredis
nebo pomocí setuptools
easy_install tornadoredis
ale to byste opravdu neměli dělat. Můžete také naklonovat úložiště a extrahovat jej. Potom spusťte
python setup.py build
python setup.py install
Připojit k redis
Následující kód je součástí vašeho main.py nebo ekvivalentu
redis_conn = tornadoredis.Client('hostname', 'port')
redis_conn.connect()
redis.connect se volá pouze jednou. Je to blokovací volání, takže by mělo být zavoláno před spuštěním hlavního ioloopu. Stejný objekt připojení je sdílen mezi všemi obslužnými rutinami.
Můžete jej přidat do nastavení aplikace jako
settings = {
redis = redis_conn
}
app = tornado.web.Application([('/.*', Handler),],
**settings)
Použijte tornadoredis
Spojení lze v obslužných rutinách použít jako self.settings['redis']
nebo jej lze přidat jako vlastnost třídy BaseHandler. Vaše obslužné rutiny požadavků podtřídy této třídy a přistupují k vlastnosti.
class BaseHandler(tornado.web.RequestHandler):
@property
def redis():
return self.settings['redis']
Pro komunikaci s redis, tornado.web.asynchronous
a tornado.gen.engine
používají se dekoratér
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}
Další informace
Další příklady a další funkce, jako je sdružování připojení a kanály, naleznete v úložišti github.