English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Publicação e assinatura Redis (pub/sub) é um modelo de comunicação de mensagens: o remetente (pub) envia mensagens, e o assinante (sub) recebe mensagens.
O cliente Redis pode assinar qualquer quantidade de canais.
A figura a seguir mostra o canal channel1 , e os três clientes que assinaram esse canal - client2 、 client5 e client1 entre eles:
Quando há novas mensagens enviadas para o canal channel1 Quando, neste caso, a mensagem é enviada para o cliente assinante através do comando PUBLISH para o canal channel
A seguir, é demonstrado como o modelo de publicação e assinatura funciona, é necessário iniciar dois redis-cliente cli.
Nossos exemplos mostram que criamos um canal de assinatura chamado w3codeboxChat:
Agora, vamos reiniciar um cliente redis, e em mesmo canal w3codeboxChat publica duas mensagens, e o assinante pode receber as mensagens.
O processo é o seguinte:
Inicie o serviço local do Redis, inicie dois redis-cliente cli.
emprimeiro redis-cliente cliInserir SUBSCRIBE w3codeboxChat, significa assinar w3canal codeboxChat.
emsegundo redis-cliente cliInserir PUBLISH w3codeboxChat "Redis PUBLISH test" para w3codeboxChat canal, neste momento no primeiro redis-O cliente cli verá a mensagem enviada pelo segundo redis-Mensagem de teste enviada pelo cliente cli.
A tabela a seguir lista os comandos comuns de publicação e assinatura do redis:
Número | Comando e Descrição |
---|---|
1 | PSUBSCRIBE padrão [padrão ...] Assinar um ou mais canais que correspondem ao padrão especificado. |
2 | PUBSUB subcomando [argumento [argumento ...]] Ver o estado do sistema de publicação e assinatura. |
3 | PUBLISH canal mensagem Enviar informações para o canal especificado. |
4 | PUNSUBSCRIBE [padrão [padrão ...]] Desistir de todos os canais especificados pelo padrão. |
5 | SUBSCRIBE canal [canal ...] Assinar informações de um ou mais canais especificados. |
6 | UNSUBSCRIBE [canal [canal ...]] Desistir de assinar o canal especificado. |