English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Redis pubblicazione/abbonamento (pub/sub) è un modello di comunicazione di messaggi: il mittente (pub) invia messaggi, l'abbonato (sub) riceve messaggi.
Il client Redis può abbonarsi a qualsiasi numero di canali.
La seguente figura mostra il canale channel1 e i tre client che lo abbonano - client2, client5 e client1 - tra loro:
Quando un nuovo messaggio viene inviato al canale channel1 tramite il comando PUBLISH, questo messaggio viene inviato ai tre client che lo abbonano:
Di seguito è riportato un esempio che dimostra come funziona la pubblicazione e l'abbonamento, è necessario avviare due client redis-cli.
Nel nostro esempio abbiamo creato un canale di abbonamento chiamato w3codeboxChat:
Ora, riavviamo un client redis, quindi pubblichiamo due messaggi nella stessa frequenza w3codeboxChat, l'abbonato può ricevere i messaggi.
Il flusso di lavoro è il seguente:
Avvia il servizio Redis locale, avvia due client redis-cli.
在第一个 redis-cli 客户端输入 SUBSCRIBE w3codeboxChat,意思是订阅 w3codeboxChat 频道。
在第二个 redis-cli 客户端输入 PUBLISH w3codeboxChat "Redis PUBLISH test" 往 w3codeboxChat 频道发送消息,这个时候在第一个 redis-cli 客户端就会看到由第二个 redis-cli 客户端发送的测试消息。
下表列出了 redis 发布订阅常用命令:
序号 | 命令及描述 |
---|---|
1 | PSUBSCRIBE pattern [pattern ...] 订阅一个或多个符合给定模式的频道。 |
2 | PUBSUB subcommand [argument [argument ...]] 查看订阅与发布系统状态。 |
3 | PUBLISH channel message 将信息发送到指定的频道。 |
4 | PUNSUBSCRIBE [pattern [pattern ...]] 退订所有给定模式的频道。 |
5 | SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道的信息。 |
6 | UNSUBSCRIBE [channel [channel ...]] 指退订给定的频道。 |