sql >> Base de Datos >  >> NoSQL >> Redis

Redis, ¿un tema (pub/sub) siempre se entregará al menos a un suscriptor?

Pub/Sub es comunicación sincrónica. Todas las partes deben estar activas al mismo tiempo para poder comunicarse. Aquí Redis es un corredor de mensajería síncrona pura.

La respuesta a sus tres primeras preguntas es no. No hay persistencia de los mensajes, ni en disco, ni en memoria. Cuando se publica un mensaje, se envía a las conexiones de clientes suscritas en ese momento. El comando PUBLICAR devolverá el número de clientes que recibieron el mensaje, inmediatamente:O(N+M) donde N es el número de clientes suscritos al canal de recepción y M es el número total de patrones suscritos (por cualquier cliente).

... pero me doy cuenta de que si estoy inactivo y me vuelvo a conectar, puedo recibir los temas cuando vuelva a conectarme

R/ Supongo que depende de lo que quieras decir con "I am down ". El mensaje debe haber sido almacenado en caché en algún lugar de su cliente. O tal vez la conexión del cliente en Redis Server todavía estaba activa y el mensaje estaba allí en el búfer de salida del cliente.

Puede encontrar estos recursos útiles:

¿Cuáles son las principales diferencias entre Redis Pub/Sub y Redis Stream?

publicación/suscripción