Redis 发布订阅模型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis 发布订阅模型相关的知识,希望对你有一定的参考价值。

Redis订阅端:

redis 127.0.0.1:6379> SUBSCRIBE redisChat

Reading messages... (press Ctrl-C to quit)

1) "subscribe"

2) "redisChat"

3) (integer) 1


现在,两个客户端都发布在同一个通道名redisChat消息及以上的订阅客户端接收消息。


Redis 发布端

redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"

(integer) 1

redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by tutorials point"



发布后的消息会被多个订阅端同时接收到



原理:

RedisServer包含两个重要的结构: 

1. channels:实际上就是一个key-value的Map结构,key为订阅地频道,value为Client的List 

2. patterns:存放模式+client地址的列表


从pubsub_channels中找出跟publish中channel相符的clients-list,然后再去pubsub_patterns中找出每一个相符的pattern和client。向这些客户端发送publish的消息。


在程序终止或者类的实例被销毁的时候,请将订阅者实例注销掉,否则,在redis中一直存在这个订阅者。


本文出自 “DBSpace” 博客,请务必保留此出处http://dbspace.blog.51cto.com/6873717/1868995

以上是关于Redis 发布订阅模型的主要内容,如果未能解决你的问题,请参考以下文章

redis发布订阅模式

Redis发布订阅和Stream

第三章Redis消息队列

Redis 发布订阅功能

Redis实现不可靠发布/订阅功能

redis发布订阅