Redis używa dict
, taka sama struktura jak dla kluczy, do przechowywania subskrypcji kanałów, zarówno na klienta, jak i dla wszystkich klientów (zachowuje skrót na subskrypcję z listą subskrybowanych klientów), więc łącznie jest to do 2^32 subskrypcji kanałów.
Używa listy do przechowywania subskrypcji wzorców na klienta, więc teoretycznie jest ograniczona tylko dostępną pamięcią węzła.
Jednak ogólnie rzecz biorąc, możesz mieć nieskończoną liczbę kanałów. Pomyśl o kanale jak o etykiecie, gdy wiadomość jest publikowana. Wiadomości nigdy nie są przechowywane. Po opublikowaniu wiadomości Redis wyszuka klientów subskrybujących ten kanał i przetestuje każdą subskrypcję wzorca. Kanał tak naprawdę istnieje tylko podczas publikowania wiadomości.
Ponieważ istnieją subskrypcje wzorów, istnieje nieograniczona liczba kanałów „logicznych”.
Tylko w powiadomieniach o zdarzeniach mamy 2^32 * bazy danych * kluczowe typy zdarzeń możliwe kanały 'logiczne'.
Jeśli chodzi o liczbę subskrybentów i wydawców, jest ona ograniczona przez maxclients
ustawienie, domyślnie 10 000. Nie ma ograniczeń dla subskrybentów i wydawców, ale obowiązuje maksymalny limit klientów (połączeń).
Jak wskazuje @Roman, istnieją ograniczenia bufora, ale dotyczy to głównie przepustowości (przetwarzania wiadomości).