700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 14. Redis 发布订阅-实现消息队列

14. Redis 发布订阅-实现消息队列

时间:2023-11-03 09:59:50

相关推荐

14. Redis 发布订阅-实现消息队列

Redis 除了做缓存, 也可以做消息队列, 实现简单的消息的发布和订阅。Redis 消息订阅支持精确订阅和模糊订阅两种模式!

1. Redis 消息队列

1.1 Redis 消息队列特点

当有新消息发布时, 所有订阅的客户端全部接受到消息。Redis 订阅channel时,支持模糊匹配当新的客户端订阅时,之前的消息不会被重复接受

1.2 常用命令

2. 命令测试

2.1 订阅消息

打开两个客户端,同时监听两个频道ch1 和 ch2

$ redis-cli 127.0.0.1:6379> SUBSCRIBE ch1 ch2Reading messages... (press Ctrl-C to quit)1) "subscribe"2) "ch1"3) (integer) 11) "subscribe"2) "ch2"3) (integer) 2

2.2 模糊订阅

新起三个客户端, 实现模糊订阅频道 ch*

$ redis-cli 127.0.0.1:6379> PSUBSCRIBE ch*Reading messages... (press Ctrl-C to quit)1) "psubscribe"2) "ch*"3) (integer) 1

2.3 发布消息

分别向频道ch1 和 ch2 发送消息.

$ redis-cli 127.0.0.1:6379> PUBLISH ch1 hello(integer) 2127.0.0.1:6379> PUBLISH ch2 hi(integer) 2

2.3 查看消息

当发布消息时, 会发现五个客户端均有消息输出, 但是对于精确订阅和模糊订阅两种方式, 接收到的消息体略有不同.

2.3.1 精确订阅输出

1) "message"2) "ch1"3) "hello"1) "message"2) "ch2"3) "hi"

2.3.2 模糊订阅接收消息体

1) "pmessage"2) "ch*"3) "ch1"4) "hello"1) "pmessage"2) "ch*"3) "ch2"4) "hi"

2.4 查看监听状态

2.4.1 查看所有精确监听的channel名称

支持模糊匹配进行过滤只能查看采用精确方式订阅的channel名称, 不能查看模糊方式订阅的channel

127.0.0.1:6379> PUBSUB channels1) "ch1"2) "ch2"127.0.0.1:6379> PUBSUB channels ch*1) "ch1"2) "ch2"

2.4.2 查看精确订阅具体channel 的客户端数量

不支持模糊匹配结果只包含精确订阅的客户端数量, 不包含模糊订阅的客户端数量

127.0.0.1:6379> PUBSUB numsub ch11) "ch1"2) (integer) 2

2.4.3 查看模糊订阅的数量

127.0.0.1:6379> PUBSUB numpat (integer) 3

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。