Redis usa um
dict
, mesma estrutura das chaves, para armazenar assinaturas de canal, tanto por cliente quanto para todos os clientes (mantém um hash por assinatura com uma lista de clientes inscritos), portanto, são até 2^32 assinaturas de canal no total. Ele usa uma lista para armazenar assinaturas de padrão por cliente, portanto, teoricamente, é limitado apenas pela memória do nó disponível.
No entanto, em geral, você pode ter canais infinitos. Pense em um canal como um rótulo quando uma mensagem é publicada. As mensagens nunca são armazenadas. Quando a mensagem for publicada, o Redis procurará os clientes inscritos nesse canal e testará cada assinatura padrão. O canal realmente existe apenas enquanto a mensagem está sendo publicada.
Como existem assinaturas padrão, existem canais 'lógicos' ilimitados.
Apenas nas notificações de eventos temos 2^32 * bancos de dados * principais tipos de eventos possíveis canais 'lógicos'.
Em relação ao número de assinantes e editores, é limitado pelo
maxclients
configuração, 10.000 por padrão. Não há limitação para assinantes e editores, mas aplica-se o limite máximo de clientes (conexões). Conforme indicado por @Roman, existem limitações de buffer, mas isso se refere principalmente à taxa de transferência (processamento de mensagens).