Redis 消息订阅发布
一、是什么
进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。
二、命令
序号 | 命令 | 描述 |
---|---|---|
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 …]] | 指退订给定的频道 |
三、案例
先订阅后发布后才能收到消息
1 可以一次性订阅多个,SUBSCRIBE c1 c2 c3
2 消息发布,PUBLISH c2 hello-redis
3 订阅多个,通配符 *, PSUBSCRIBE new*
4 收取消息, PUBLISH new1 redis2015
客户端 A
127.0.0.1:6379> SUBSCRIBE c1 c2 c3
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "c1"
3) (integer) 1
1) "subscribe"
2) "c2"
3) (integer) 2
1) "subscribe"
2) "c3"
3) (integer) 3
客户端 B
127.0.0.1:6379> PUBLISH c2 hello-redis
(integer) 1
127.0.0.1:6379> PUBLISH c1 hello1122
(integer) 1
客户端 A 接收到消息
1) "message"
2) "c2"
3) "hello-redis"
1) "message"
2) "c1"
3) "hello1122"
客户端 C
127.0.0.1:6379> PSUBSCRIBE new*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "new*"
3) (integer) 1
客户端 D
127.0.0.1:6379> PUBLISH new1 redis2015
(integer) 1
127.0.0.1:6379> PUBLISH new13 redisnews2016
(integer) 1
客户端 C 接收消息
1) "pmessage"
2) "new*"
3) "new1"
4) "redis2015"
1) "pmessage"
2) "new*"
3) "new13"
4) "redisnews2016"