2011-06-26 15 views

Odpowiedz

74

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

Dlaczego subskrybent dostaje "subskrybować" i "mój pokaz" zamiast wiadomości "Dzień dobry wszystkim!" itp.? – bcoughlan

+4

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ą). –

+0

@AashayDesai popularny scenariusz, gdy ktoś chce/musi użyć funkcji publikowania i subskrypcji, byłby pomocny – kentor

Powiązane problemy