2011-09-05 17 views

Trả lời

9

Vì pub/sub không đồng bộ, thông điệp được xuất bản có thể xuất hiện bất cứ lúc nào, kể cả khi bạn đang chờ phản hồi cho lệnh.

Mặc dù redis là chuỗi đơn, thường ngăn chặn điều đó, độ trễ mạng có thể gây ra một số hiệu ứng thú vị - tùy thuộc vào nội dung của thư, bạn có thể nhận được phản hồi hợp lệ cho lệnh trước khi máy chủ thực sự nhận được .

Điều đó nói rằng, bạn có thể sử dụng một kết nối duy nhất nếu bạn thực sự muốn - "không nên" không giống như "không thể" và redis tuân theo triết lý thiết kế đơn giản không cố gắng ngăn bạn tự chụp ở chân. Tuy nhiên, nó dễ dàng hơn nhiều khi chỉ cần mở hai kết nối đến máy chủ. Nếu bạn nhấn giới hạn kết nối với hai kết nối cho mỗi khách hàng, bạn có thể sẽ gặp sự cố với một kết nối cho mỗi khách hàng khá sớm.

+0

tuyệt vời! cảm ơn nhiều. – Draconar

3

Khi khách hàng phát hành SUBSCRIBE hoặc PSUBSCRIBE, kết nối đó được đưa vào chế độ "pub/sub". Tại thời điểm đó, chỉ các lệnh sửa đổi tập hợp đăng ký mới hợp lệ. Khi bộ đăng ký trống, kết nối sẽ được đưa trở lại chế độ thông thường.

Nếu bạn cần gửi lệnh thông thường đến Redis trong khi ở chế độ pub/sub, chỉ cần mở một kết nối khác.