Hơi muộn nhưng tôi đã sử dụng tornado-redis. Nó hoạt động với ioloop của tornado và tornado.gen
mô-đun
Cài đặt tornadoredis
Nó có thể được cài đặt từ pip
pip install tornadoredis
hoặc với các công cụ thiết lập
easy_install tornadoredis
nhưng bạn thực sự không nên làm điều đó. Bạn cũng có thể sao chép kho lưu trữ và giải nén nó. Sau đó chạy
python setup.py build
python setup.py install
Kết nối với redis
Đoạn mã sau đi trong main.py hoặc mã tương đương của bạn
redis_conn = tornadoredis.Client('hostname', 'port')
redis_conn.connect()
redis.connect chỉ được gọi một lần. Nó là một cuộc gọi chặn, vì vậy nó nên được gọi trước khi bắt đầu ioloop chính. Đối tượng kết nối giống nhau được chia sẻ giữa tất cả các trình xử lý.
Bạn có thể thêm nó vào cài đặt ứng dụng của mình như
settings = {
redis = redis_conn
}
app = tornado.web.Application([('/.*', Handler),],
**settings)
Sử dụng tornadoredis
Kết nối có thể được sử dụng trong trình xử lý dưới dạng self.settings['redis']
hoặc nó có thể được thêm vào như một thuộc tính của lớp BaseHandler. Các trình xử lý yêu cầu của bạn phân loại lớp đó và truy cập thuộc tính.
class BaseHandler(tornado.web.RequestHandler):
@property
def redis():
return self.settings['redis']
Để giao tiếp với redis, tornado.web.asynchronous
và tornado.gen.engine
trang trí được sử dụng
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}
Thông tin bổ sung
Bạn có thể tìm thấy thêm các ví dụ và các tính năng khác như gộp kết nối và đường ống tại kho github.