sql >> Databáze >  >> NoSQL >> Redis

Co je Redis pubsub a jak jej mohu používat?

Publish/subscribe je docela jednoduché paradigma. Představte si to, jako byste provozovali talk show na rozhlasové stanici. To je PUBLISH. Doufáte, že alespoň jeden nebo více lidí vyzvedne váš kanál, aby si poslechli vaše zprávy v rozhlasovém pořadu (ODBĚR) a možná i něco provedli, ale nemluvíte s lidmi přímo .

Pojďme se trochu pobavit s 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

Všimněte si, že zprávy na vašem kanálu "myradioshow" nepřijímají žádní klienti (to je 0 v odpovědi). Nikdo neposlouchá. Nyní otevřete další redis-cli (nebo pro více zábavy požádejte přítele, aby otevřel své redis-cli a připojil se k vašemu serveru) a PŘIHLÁSIT se ke kanálu:

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

Vraťte se ke svému původnímu redis-cli a pokračujte ve své show:

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

Všimli jste si, že "1" na konci? Máš posluchače! Jako kouzlo ve vašem terminálu SUBSCRIBE-d:

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

Samozřejmě, ve skutečnosti pravděpodobně budete chtít dělat věci, které jsou užitečnější, než říkat svým klientům o svém životním stylu bez kalhot, jako je spouštění událostí na vašem serveru nebo provádění nějakých úkolů/úkolů. Možná ale ne! :)




  1. Jak vrátím flask render_template po dokončení úlohy na pozadí Redis?

  2. Možnosti konfigurace runtime ClusterControl

  3. Aktualizace vnořeného pole pomocí MongoDB

  4. Výjimka ověřující MongoCredential a Uncategorized Mongo Db Exception