sql >> Databasteknik >  >> NoSQL >> Redis

Redis, kommer ett ämne (pub/sub) alltid att levereras till minst en prenumerant?

Pub/Sub är synkron kommunikation. Alla parter behöver vara aktiva samtidigt för att kunna kommunicera. Här är Redis en ren synkron meddelandemäklare.

Svaret på dina tre första frågor är nej. Det finns ingen beständighet av meddelandena, inte på disken, inte i minnet. När ett meddelande publiceras skickas det till de klientanslutningar som prenumereras för tillfället. Kommandot PUBLISH returnerar antalet klienter som tog emot meddelandet omedelbart:O(N+M) där N är antalet klienter som prenumererar på den mottagande kanalen och M är det totala antalet prenumererade mönster (av vilken klient som helst).

... men jag märker att om jag är nere och återansluter kan jag få ämnen levererade när jag går online igen

R/ Jag antar att det beror på vad du menar med "Jag är nere ". Meddelandet måste ha cachelagrats någonstans i din klient. Eller så kanske klientanslutningen i Redis Server fortfarande levde och meddelandet fanns där i klientutgångsbufferten.

Dessa resurser kan vara användbara:

Vilka är de största skillnaderna mellan Redis Pub/Sub och Redis Stream?

Pub/Sub




  1. Redis administrationspanel

  2. Konvertera ObjectID (Mongodb) till String i JavaScript

  3. MongoDB .NET genererar inte _id vid upsert

  4. Mongodb:Fråga ett json-objekt kapslat i en array