Mój model mentalny polegał na "czacie", w którym zasubskrybowałem pewien kanał i mogę publikować wiadomości na tym kanale.Dlaczego nie mogę mieć jednego klienta Redis działającego jako PUB i Sub w tym samym połączeniu?
Odpowiedz
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.
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.
- 1. Redis Pub Sub kanał pamięci
- 2. Nodejs Publikuj od klienta pub/sub
- 3. Seler jako sieciowe zdarzenia pub/sub
- 4. ZeroMQ PUB/SUB - dlaczego wielu subskrybentów nie działa?
- 5. Redis pub/sub do serwera czatu w node.js
- 6. Jak zaprojektować redis pub/sub dla systemu wiadomości błyskawicznych?
- 7. jQuery Callback i Pub/Sub
- 8. Konkurencja Konsumenta w Redis Pub/Sub jest obsługiwana?
- 9. Wzorzec Pub/Sub w usłudze usługi Azure
- 10. ZeroMQ Pub-Sub + Dynamiczne wykrywanie bez mediatora
- 11. WCF Pub/Sub z buforowaniem subskrybentów
- 12. Łączenie pub/sub z req/rep w zera
- 13. przykłady zeromq pub/sub z C# winform
- 14. Wdrażanie funkcji Pub/Sub lub SignalR w .NET 3.5?
- 15. Różnica między pub-sub i push-pull w zeroMq
- 16. Otrzymuję zduplikowane wiadomości w mojej klastrowej aplikacji node.js/socket.io/redis pub/sub
- 17. nie mogę mieć obu słów kluczowych w tym samym wierszu: prywatny końcowy ...()?
- 18. JQuery innerText nie w tym sub elementu
- 19. Używanie jednego widoku częściowego Wielokrotnie w tym samym widoku nadrzędnym
- 20. Gdzie Redis przechowuje dane
- 21. Można przydzielić wskaźnik jednego typu i wyrzucić go jako inny typ, ale o tym samym rozmiarze?
- 22. Redis/Node.js - 2 klientów (1 pub/sub) powodujących problemy z pisaniem
- 23. Czy mogę wybrać i aktualizować w tym samym czasie?
- 24. core.async pub/sub zachowuje się dziwnie w Om (clojurescript)
- 25. Selery i flakon w tym samym doku-dokowanie
- 26. czy redis pub publikuje historyczne wiadomości w kanale?
- 27. Używanie Redis jako pamięci podręcznej dla wielu aplikacji na tym samym serwerze
- 28. Wyświetlanie konsoli i debugera w tym samym czasie w IntelliJ
- 29. Dlaczego usługa ByRef nie działa w połączeniu z WithEvents?
- 30. Zanikanie i przesuwanie w tym samym czasie?
świetnie! Wielkie dzięki. – Draconar