Khi nói đến các lệnh chặn như BLPOP hoặc nghe kênh Pub / Sub, bạn sẽ cần một ứng dụng khách không đồng bộ như tornado-redis. Bạn có thể bắt đầu với bản trình diễn này để xem ứng dụng tornado-redis có thể được sử dụng như thế nào để phát triển một ứng dụng trò chuyện công khai đơn giản.
Nhưng tôi khuyên bạn nên sử dụng ứng dụng khách redis-py đồng bộ kết hợp với Rentis cho hầu hết các trường hợp khác.
Ưu điểm chính của máy khách không đồng bộ là máy chủ của bạn có thể xử lý các yêu cầu đến trong khi chờ phản hồi của máy chủ Redis. Tuy nhiên, máy chủ Redis quá nhanh nên trong hầu hết các trường hợp, chi phí thiết lập lệnh gọi lại không đồng bộ trong ứng dụng Tornado của bạn sẽ làm tăng thêm tổng thời gian xử lý yêu cầu, sau đó là thời gian chờ đợi phản hồi của máy chủ Redis.
Sử dụng máy khách không đồng bộ, bạn có thể cố gắng gửi nhiều yêu cầu đến máy chủ Redis cùng một lúc, nhưng máy chủ Redis là một luồng đơn (giống như máy chủ Tornado), vì vậy nó sẽ trả lời từng yêu cầu này và bạn sẽ hầu như không thu được gì. Và trên thực tế, bạn không phải gửi nhiều lệnh Redis cùng lúc đến cùng một máy chủ Redis miễn là có các đường dẫn và lệnh như MGET / MSET.
Máy khách không đồng bộ có một số lợi thế khi bạn sử dụng một số phiên bản máy chủ Redis, nhưng tôi khuyên bạn nên sử dụng máy khách đồng bộ (redis-py) và một proxy như twemproxy hoặc proxy này (cái sau hỗ trợ các lệnh pipelining và MGET / MSET).
Ngoài ra, tôi khuyên bạn không nên sử dụng tổng hợp kết nối khi sử dụng ứng dụng redis-py trong các ứng dụng Tornado . Chỉ cần tạo một Redis
duy nhất đối tượng đối tượng cho mỗi cơ sở dữ liệu Redis mà ứng dụng của bạn kết nối với.