sql >> Database teknologi >  >> NoSQL >> Redis

Redis pub sub max abonnenter og udgivere

Redis bruger en dict , samme struktur som for nøgler, til at gemme kanalabonnementer, både pr. klient og for alle klienter (beholder en pr. abonnement-hash med en liste over klienter, der abonnerer på), så det er op til 2^32 kanalabonnementer i alt.

Den bruger en liste til at gemme mønsterabonnementer pr. klient, så den er teoretisk kun begrænset af den tilgængelige nodehukommelse.

Men generelt kan du have uendelige kanaler. Tænk på en kanal som en etiket, når en besked udgives. Beskeder gemmes aldrig. Når beskeden er offentliggjort, vil Redis lede efter de kunder, der abonnerer på den kanal, og teste for hvert mønsterabonnement. Kanalen eksisterer i virkeligheden kun, mens beskeden bliver offentliggjort.

Da der er mønsterabonnementer, er der ubegrænsede 'logiske' kanaler.

Bare i begivenhedsmeddelelser har vi 2^32 * databaser * nøglehændelsestyper mulige 'logiske' kanaler.

Med hensyn til antallet af abonnenter og udgivere, er det begrænset af maxclients indstilling, 10.000 som standard. Der er ingen begrænsning for abonnenter og udgivere, men den maksimale klientgrænse (forbindelser) gælder.

Som angivet af @Roman er der bufferbegrænsninger, men dette refererer mest til gennemløb (beskedbehandling).



  1. $spring og $limit i aggregeringsramme

  2. Hvordan kan jeg gemme flere dokumenter samtidigt i Mongoose/Node.js?

  3. actionkabel abonnerer lokalt, men ikke på heroku

  4. bruger kort til at cache for omkring 5000 poster i Javascript-applikation VS Redis