2011-09-05 10 views

Odpowiedz

9

Od pub/sub jest asynchroniczna, opublikowany komunikat może pojawić się w każdej chwili, również gdy spodziewasz się odpowiedzi na polecenie.

Chociaż redis jest pojedynczym wątkiem, co normalnie zapobiega temu, opóźnienia sieciowe mogą powodować pewne interesujące efekty - w zależności od treści wiadomości, można otrzymać poprawną odpowiedź na polecenie, zanim serwer faktycznie je odbierze .

To powiedziawszy, prawdopodobnie możesz użyć pojedynczego połączenia, jeśli naprawdę chcesz - "nie powinno" to nie to samo, co "nie może", a redis kieruje się prostą filozofią projektowania, nie próbując zapobiec strzelaniu do siebie w stopę. Łatwiej jest jednak otworzyć dwa połączenia z serwerem. Jeśli przekroczysz limity połączeń za pomocą dwóch połączeń na klienta, prawdopodobnie niedługo napotkasz problemy z jednym połączeniem na klienta.

+0

świetnie! Wielkie dzięki. – Draconar

3

Gdy klient wystawia zapisać lub PSUBSCRIBE, że połączenie zostało wprowadzone w trybie „pub/Sub”. W tym momencie poprawne są tylko polecenia modyfikujące zestaw subskrypcji. Gdy zestaw subskrypcji jest pusty, połączenie zostaje przywrócone do zwykłego trybu.

Jeśli chcesz wysłać regularne polecenia do Redis w trybie Pub/Sub, po prostu otwórz inne połączenie.

Powiązane problemy