Redis използва dict
, същата структура като за ключовете, за съхраняване на абонаменти за канали, както за клиент, така и за всички клиенти (съхранява хеш за всеки абонамент със списък с абонирани клиенти), така че има общо до 2^32 абонамента за канал.
Той използва списък за съхраняване на абонаменти за шаблони на клиент, така че теоретично е ограничен само от наличната памет на възела.
Въпреки това, като цяло, можете да имате безкрайни канали. Мислете за канал като етикет, когато се публикува съобщение. Съобщенията никога не се съхраняват. Когато съобщението бъде публикувано, Redis ще търси клиентите, абонирани за този канал, и ще тества за всеки абонамент за шаблон. Каналът наистина съществува само докато съобщението се публикува.
Тъй като има абонаменти за шаблони, има неограничени „логически“ канали.
Само в известията за събития имаме 2^32 * бази данни * ключови типове събития, възможни "логически" канали.
По отношение на броя на абонатите и издателите, той е ограничен от maxclients
настройка, 10 000 по подразбиране. Няма ограничение за абонати и издатели, но се прилага максималното ограничение за клиенти (връзки).
Както е посочено от @Roman, има ограничения на буфера, но това се отнася най-вече за пропускателната способност (обработка на съобщения).