sql >> Database >  >> NoSQL >> Redis

Redis, wordt een onderwerp (pub/sub) altijd aan minstens één abonnee bezorgd?

Pub/Sub is synchrone communicatie. Alle partijen moeten tegelijkertijd actief zijn om te kunnen communiceren. Hier is Redis een pure synchrone berichtenmakelaar.

Het antwoord op uw eerste drie vragen is nee. Er is geen persistentie van de berichten, niet op de schijf, niet in het geheugen. Wanneer een bericht wordt gepubliceerd, wordt het verzonden naar de clientverbindingen die op dat moment zijn geabonneerd. Het PUBLISH-commando retourneert het aantal clients dat het bericht heeft ontvangen, onmiddellijk:O(N+M) waarbij N het aantal clients is dat is geabonneerd op het ontvangende kanaal en M het totale aantal geabonneerde patronen is (door elke client).

... maar ik merk dat als ik down ben en opnieuw verbinding maak, ik de onderwerpen kan krijgen wanneer ik weer online ga

R/ Ik denk dat het afhangt van wat je bedoelt met "Ik ben down ". Het bericht moet gecached zijn ergens in je cliënt. Of misschien was de clientverbinding in Redis Server nog actief en stond het bericht in de Client Output Buffer.

Mogelijk vindt u deze bronnen nuttig:

Wat zijn de belangrijkste verschillen tussen Redis Pub/Sub en Redis Stream?

Pub/Sub




  1. Tips voor het beheren van uw databaseconfiguraties

  2. nginx lua redis cookie niet ingesteld

  3. Operationele database in CDP

  4. MongoDB - De inhoud van een interne array filteren in een resultatenset