sql >> Databáze >  >> NoSQL >> Redis

Jaký je správný způsob, jak zvládnout připojení Redis v Tornado? (Asynchronní – Pub/Sub)

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.



  1. Zkontrolujte ověření MongoDB pomocí ovladače Java 3.0

  2. Výhody a nevýhody použití celeru vs. RQ

  3. Migrace dat s Redis

  4. Dokument Čtení a vkládání se zamykáním/transakcí v nodejs s mongodb