Redis
 sql >> Baza danych >  >> NoSQL >> Redis

Co to jest Redis pubsub i jak z niego korzystać?

Publikuj/subskrybuj to dość prosty paradygmat. Pomyśl o tym jak o prowadzeniu talk show w stacji radiowej. To jest OPUBLIKUJ. Masz nadzieję, że co najmniej jedna osoba wybierze Twój kanał, aby posłuchać Twoich wiadomości w audycji radiowej (SUBSCRIBE), a może nawet coś zrobić, ale nie rozmawiasz z ludźmi bezpośrednio .

Pobawmy się 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

Zauważ, że nie ma klientów odbierających wiadomości na twoim kanale "myradioshow" (to 0 w odpowiedzi). Nikt nie słucha. Teraz otwórz inny redis-cli (lub dla zabawy, niech znajomy otworzy swoje redis-cli i połączy się z twoim serwerem) i SUBSKRYBUJ kanał:

redis 127.0.0.1:6379> SUBSCRIBE myradioshow
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "myradioshow"
3) (integer) 1

Wróć do oryginalnego 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 terminalu SUBSCRIBE-d:

1) "message"
2) "myradioshow"
3) "Next caller gets a free loaf of bread!"

Oczywiście w rzeczywistości prawdopodobnie będziesz chciał robić rzeczy, które są bardziej przydatne niż opowiadanie klientom o swoim stylu życia bez majtek, takich jak zwalnianie zdarzeń na serwerze lub wykonywanie jakiegoś rodzaju zadań/prac. Może jednak nie! :)




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Jak mogę wyczyścić wszystkie wystąpienia typu X w kliencie ServiceStack Redis?

  2. jak wygasnąć klucz mapy w REDIS?

  3. Pipelining vs Batching w Stackexchange.Redis

  4. Jak mogę sprawdzić, czy moja pamięć podręczna redis działa?

  5. Nadzorowany przez Django Celery Elastic Beanstalk brak takiego błędu procesu