sql >> Databasteknik >  >> NoSQL >> Redis

Vad är Redis pubsub och hur använder jag det?

Publicera/prenumerera är ett ganska enkelt paradigm. Tänk på det som att du kör en talkshow på en radiostation. Det är PUBLICERA. Du hoppas att minst en eller flera personer ska ta upp din kanal för att lyssna på dina meddelanden i radioprogrammet (Prenumerera) och kanske till och med göra några saker, men du pratar inte med folk direkt .

Låt oss ha lite kul med redis-cli!

redis 127.0.0.1:6379> PUBLISH myradioshow "Good morning everyone!"
(integer) 0
redis 127.0.0.1:6379> PUBLISH myradioshow "How ya'll doin tonight?"
(integer) 0
redis 127.0.0.1:6379> PUBLISH myradioshow "Hello? Is anyone listening? I'm not wearing pants."
(integer) 0

Observera att det inte finns några klienter som tar emot meddelanden på din "myradioshow"-kanal (det är 0:an i svaret). Ingen lyssnar. Öppna nu en annan redis-cli (eller för roligare stunder låt en vän öppna sin redis-cli och anslut till din server) och PRENUMERERA på kanalen:

redis 127.0.0.1:6379> SUBSCRIBE myradioshow
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "myradioshow"
3) (integer) 1

Gå tillbaka till din ursprungliga redis-cli och fortsätt din show:

redis 127.0.0.1:6379> PUBLISH myradioshow "Next caller gets a free loaf of bread!"
(integer) 1

Lägger du märke till att "1" på slutet? Du har en lyssnare! Som magi, i din SUBSCRIBE-d-terminal:

1) "message"
2) "myradioshow"
3) "Next caller gets a free loaf of bread!"

Naturligtvis, i verkligheten, kommer du förmodligen att vilja göra saker som är mer användbara än att berätta för dina kunder om din byxlösa livsstil, som att avfyra händelser på din server eller köra någon form av uppgifter/jobb. Fast kanske inte! :)




  1. Skjut föremål i mongo-arrayen via mongoose

  2. MongoDB:Kan inte kanonisera frågan:BadValue Projection kan inte ha en blandning av inkludering och exkludering

  3. MongoDB Aggregations med Java

  4. Hur man får alla nycklar från Redis med hjälp av redis-mall