Redis
 sql >> Base de Dados >  >> NoSQL >> Redis

Redis, um tópico (pub/sub) sempre será entregue a pelo menos um assinante?


Pub/Sub é comunicação síncrona. Todas as partes precisam estar ativas ao mesmo tempo para poder se comunicar. Aqui o Redis é um corretor de mensagens síncrono puro.

A resposta para suas três primeiras perguntas é não. Não há persistência das mensagens, nem no disco, nem na memória. Quando uma mensagem é publicada, ela é enviada para as conexões de clientes assinadas no momento. O comando PUBLISH retornará o número de clientes que receberam a mensagem, imediatamente:O(N+M) onde N é o número de clientes inscritos no canal receptor e M é o número total de padrões inscritos (por qualquer cliente).

... mas estou percebendo que, se eu estiver inativo e me reconectar, posso obter os tópicos entregues quando voltar a ficar on-line

R/ Acho que depende do que você quer dizer com "estou pra baixo ". A mensagem deve estar em cache em algum lugar do seu cliente. Ou talvez a conexão do cliente no Redis Server ainda estivesse ativa e a mensagem estivesse no buffer de saída do cliente.

Você pode achar estes recursos úteis:

Quais são as principais diferenças entre o Redis Pub/Sub e o Redis Stream?

Pub/Sub