2014-06-13 9 views
7

Jakie mechanizmy używa Redis do utrzymywania wiadomości w pamięci w przypadku pub-sub? Jeśli żaden klient nie jest zasubskrybowany, co dzieje się z wiadomościami? Czy Redis je buforuje? Czy istnieje sposób konfiguracji min. i maks. pamięć przydzielona na kanał?Redis Pub Sub kanał pamięci

Odpowiedz

13

Redis nie przechowuje wiadomości w pamięci w katalogu pub/Sub kontekście jak widać w implementation (x):

  1. wiadomość zostanie wysłana do klientów listening for that channel (jeśli w ogóle),
  2. z wiadomość jest wysyłana do klientów listening to matching channels (jeśli istnieje).

Następnie Redis po prostu zwraca liczbę klientów, którzy otrzymali wiadomość (pamiętając, że klient może otrzymać pojedynczą wiadomość wiele razy, na przykład, jeśli wiele dopasowań wzorca).

Jeśli nie ma klient subskrybowane, Redis prostu zwraca 0, a wiadomość nie została nagrana/buforowane:

> publish foo test 
(integer) 0 

(x) w zasadzie Redis pętle na liście klientów subskrybowanych i wysyła odpowiedź z wiadomość.

+1

+1 za naprawdę dobrze wyjaśnioną i zwięzłą odpowiedź. –

Powiązane problemy