Ktoś zapytał mnie, czym jest PubSub i jak utworzyć kanał (w komentarzu od my answer) i wskazałem mu artykuł na temat redis.io =>http://redis.io/topics/pubsub. Myślę, że to całkiem jasne, ale zastanawiam się, czy ktoś ma lepsze wytłumaczenie. Najlepiej opisz to wyraźnie, używając redis-cli
.Co to jest pubsub Redis i jak z niego korzystać?
Odpowiedz
Publikowanie/subskrypcja jest dość prostym paradygmatem. Pomyśl o tym, jakbyś prowadził talk show w stacji radiowej. To PUBLIKACJA. Masz nadzieję, że co najmniej jedna osoba odbierze Twój kanał, aby słuchać wiadomości w audycji radiowej (SUBSKRYBUJ), a może nawet zrobić kilka rzeczy, ale nie rozmawiasz z ludźmi bezpośrednio.
Bawmy się dobrze z redis-cli!
redis 127.0.0.1:6379> PUBLISH myradioshow "Good morning everyone!"
(integer) 0
redis 127.0.0.1:6379> PUBLISH myradioshow "How ya'll doin tonight?"
(integer) 0
redis 127.0.0.1:6379> PUBLISH myradioshow "Hello? Is anyone listening? I'm not wearing pants."
(integer) 0
Wskazówka nie istnieją klienci otrzymują wiadomości na temat swojego „myradioshow” kanał (to 0 w odpowiedzi). Nikt nie słucha. Teraz otwórz inny Redis-cli (lub więcej ciekawych czasach mieć przyjaciela otwarcie ich Redis-cli i połączyć się z serwerem) i zapisać się na kanale:
redis 127.0.0.1:6379> SUBSCRIBE myradioshow
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "myradioshow"
3) (integer) 1
wrócić do swojego pierwotnego Redis-cli i kontynuuj pokaz:
redis 127.0.0.1:6379> PUBLISH myradioshow "Next caller gets a free loaf of bread!"
(integer) 1
Zauważ, że "1" na końcu? Masz słuchacza! Jak magia, w swoim ZAMÓW-d terminalu:
1) "message"
2) "myradioshow"
3) "Next caller gets a free loaf of bread!"
Oczywiście, w rzeczywistości, jesteś prawdopodobnie będzie chciał robić rzeczy, który jest bardziej użyteczny niż informując swoich klientów o swojej spodnie mniej życia, takich jak wypalanie zdarzenia na serwerze lub wykonywanie zadań/zadań. Może jednak nie! :)
- 1. CodeMirror - co to jest addWidget i jak z niego korzystać?
- 2. Co to jest plik .pem i jak z niego korzystać?
- 3. Co to jest LD_LIBRARY_PATH i jak z niego korzystać?
- 4. Co to jest plik ASN i jak z niego korzystać?
- 5. Co to jest JBPM? Dlaczego warto z niego korzystać?
- 6. Magento XMLConnect ... co to jest i jak mogę z niego korzystać?
- 7. Co to jest Exit (integer) i jak z niego korzystać w PHP
- 8. Co to jest dSYM i jak z niego korzystać? (iOS SDK)
- 9. Redis: jak (lub powinienem) usunąć kanały pubsub
- 10. Co robi „” obniżonej funkcji i jak z niego korzystać
- 11. Co to jest blokowanie w MySQL i kiedy z niego korzystać?
- 12. Co to jest Ext.namespace, jak z nich korzystać?
- 13. NgDocs Provider Jak z niego korzystać?
- 14. Projekcje. Warunkowe - jak z niego korzystać?
- 15. Zrozumienie Oracle Apex_Application.G_Fnn i jak z niego korzystać
- 16. Co to jest __meteor_bootstrap__?
- 17. StofDoctrineExtensionsBundle softdelete - Jak z niego korzystać?
- 18. Pole DateTime i pomocnik Html.TextBoxFor(). Jak korzystać z niego poprawnie?
- 19. Jak korzystać z Redis w Trello?
- 20. Co oznacza minus w "exec 3> & -" i jak z niego korzystać?
- 21. Co to jest programowanie aspektowe?
- 22. Jak korzystać z "DUMP" i "RESTORE" w trybie redis (offline)?
- 23. Co to jest Haskell Stream Fusion
- 24. Jak mogę asynchronicznie używać Tornado i Redis?
- 25. Co to jest i jak zrobić WBS?
- 26. Co to jest IDL?
- 27. Co to jest PurpleEventCallback?
- 28. Co to jest VertiPaq i jak działa
- 29. WCF: Co to jest ServiceHost?
- 30. Co to jest Thread.CurrentPrincipal i co robi?
Dlaczego subskrybent dostaje "subskrybować" i "mój pokaz" zamiast wiadomości "Dzień dobry wszystkim!" itp.? – bcoughlan
Są to po prostu wiadomości od Redisa w formie odpowiedzi zbiorczej, informujące o tym, co zrobił i co zasubskrybował, a 1 oznacza odpowiedź powodzenia. Zobacz tutaj: http://redis.io/commands/subscribe. W moim przykładzie SUBSCRIBE dzieje się po opublikowaniu pierwszych wiadomości, więc nie otrzymują "Dzień dobry wszystkim!" itp., ponieważ te wiadomości już zniknęły. Innymi słowy, SUBSKRYBUJ otrzymuje tylko opublikowane komunikaty, które są publikowane po subskrypcji (innymi słowy, nie jest kolejką). –
@AashayDesai popularny scenariusz, gdy ktoś chce/musi użyć funkcji publikowania i subskrypcji, byłby pomocny – kentor