Sedikit terlambat tapi, saya telah menggunakan tornado-redis. Ia bekerja dengan ioloop tornado dan tornado.gen
modul
Pasang tornadoredis
Itu dapat diinstal dari pip
pip install tornadoredis
atau dengan setuptools
easy_install tornadoredis
tetapi Anda benar-benar tidak boleh melakukan itu. Anda juga bisa mengkloning repositori dan mengekstraknya. Kemudian jalankan
python setup.py build
python setup.py install
Hubungkan ke redis
Kode berikut masuk ke main.py atau yang setara
redis_conn = tornadoredis.Client('hostname', 'port')
redis_conn.connect()
redis.connect dipanggil hanya sekali. Ini adalah panggilan pemblokiran, jadi itu harus dipanggil sebelum memulai ioloop utama. Objek koneksi yang sama dibagikan di antara semua penangan.
Anda dapat menambahkannya ke pengaturan aplikasi Anda seperti
settings = {
redis = redis_conn
}
app = tornado.web.Application([('/.*', Handler),],
**settings)
Gunakan tornadoredis
Koneksi dapat digunakan di penangan sebagai self.settings['redis']
atau dapat ditambahkan sebagai properti dari kelas BaseHandler. Penangan permintaan Anda mensubklasifikasikan kelas itu dan mengakses properti.
class BaseHandler(tornado.web.RequestHandler):
@property
def redis():
return self.settings['redis']
Untuk berkomunikasi dengan redis, tornado.web.asynchronous
dan tornado.gen.engine
dekorator digunakan
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}
Informasi tambahan
Lebih banyak contoh dan fitur lain seperti penyatuan koneksi dan saluran pipa dapat ditemukan di repo github.