Como usar o Redis Pub-Sub

Como usar o Redis Pub-Sub
O modelo Publish-Subscribe é um paradigma em que as mensagens podem ser passadas para um número subjetivo de remetentes. Os remetentes da mensagem, também conhecidos como assinantes, não enviam mensagens diretamente para um destinatário de destino. No entanto, eles enviam a mensagem para um canal onde os destinatários, também conhecidos como assinantes, podem acessá -los.

Um único usuário pode se inscrever em vários canais e visualizar as mensagens dos editores enviados para esse canal. Eles também podem cancelar a inscrição no canal a qualquer momento.

Este tutorial aprenderá como implementar um modelo simples de inscrição de publicação usando Redis.

É bom observar que usaremos comandos nativos de redis e não um código personalizado em Python, Ruby, JavaScript ou outros.

Redis Pub comandos.

Ao trabalhar com o modelo Publish-inscrição em Redis, dois comandos principais entram em jogo:

  1. SE INSCREVER
  2. PUBLICAR

Esses comandos são diretos e descrevem a função que eles assumem. Por exemplo, o comando de assinatura é usado para assinar um cliente em um canal ou canal específico.

O comando de publicação permite que um remetente ou editor envie uma mensagem para um número específico de canais.

Modelo básico de sub-sub-sub

Este tutorial implementará um modelo simples de pub-sub para mostrar como funciona em redis.

Para isso, você precisará de um cluster Redis em funcionamento no seu sistema.

Comece abrindo três sessões terminais e inicie a CLI Redis em cada uma delas.

Depois de abrir e configurar todos os terminais, use um dos terminais para se inscrever em um canal.

O comando de assinatura toma o nome do canal como o argumento. A sintaxe geral pode ser representada como:

SE INSCREVER

O nome vai depender inteiramente de você e você pode nomear o que quiser. Por exemplo, no comando abaixo, assinamos um canal chamado Linuxhint.

127.0.0.1: 6379> Inscreva -se Linuxhint
Ler mensagens… (pressione Ctrl-C para sair)
1) "Inscreva -se"
2) "Linuxhint"
3) (número inteiro) 1

No exemplo acima, assinamos um canal chamado Linuxhint, e podemos começar a receber qualquer mensagem publicada para esse canal.

Use -o para publicar uma mensagem no canal Linuxhint no segundo terminal.

Use o comando de publicação seguido pelo nome do canal e a mensagem para publicar.

Por exemplo:

127.0.0.1: 6379> Publicar Linuxhint "Olá, todos!"
(Inteiro) 1

Preste atenção ao primeiro terminal e execute o comando acima. Você notará que a mensagem aparece automaticamente no canal onde o usuário assinou.

Um exemplo de saída no terminal do assinante é como mostrado:

1) "Mensagem"
2) "Linuxhint"
3) "Olá a todos!"

Ele contém o tipo, neste caso, uma mensagem, o canal e o conteúdo real da mensagem.

Nota: Quando você precisar publicar uma mensagem, você pode incluí -la em aspas, e Redis o tratará como uma única mensagem, em vez de comandar argumentos.

No terceiro terminal, nós o usaremos para assinar vários canais usando o comando PSUBSCRECRECK.

O comando PSubScribe pega um padrão específico e assina o usuário a esses canais.

Por exemplo, para se inscrever em todos os canais que começam com os caracteres Linux, podemos definir o comando como:

127.0.0.1: 6379> PsubScribe Linux*
Ler mensagens… (pressione Ctrl-C para sair)
1) "Psubscribe"
2) "Linux*"
3) (número inteiro) 1

Depois de executar o comando acima, se publicarmos uma mensagem para qualquer canal com o nome Linux, o assinante (no terminal 3) receberá a mensagem.

Por exemplo, no segundo terminal, execute os seguintes comandos:

127.0.0.1: 6379> Publicar LinuxUser "para canais LinuxUser"
127.0.0.1: 6379> Publicar Linuxhint "para canais Linuxhint"
127.0.0.1: 6379> Publicar LinuxCommander "para canais LinuxCommander"

Agora preste atenção ao terceiro terminal com o padrão assinando. Você notará que o assinante nesse terminal recebe todas as três mensagens, enquanto o do Terminal 1 recebe apenas a mensagem enviada para o canal "Linuxhint".

Como você pode ver, o comando PSUBRECCIBRE assina canais que correspondem a um padrão específico.

Fechamento

Este guia analisou o básico de usar o modelo Redis Publish-Splribe. Embora o guia cubra apenas os fundamentos, você pode expandir-o para criar aplicativos personalizados em tempo real.