Redis的发布和订阅
2022/7/5 2:20:24
本文主要是介绍Redis的发布和订阅,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Redis的发布和订阅
我感觉这个发布和订阅用的观察者模式实现的,我只是提一个我的感觉。
Redis 发布订阅 (pub/sub) 是一种消息通信模式
:发送者 (pub)
发送消息,订阅者
(sub) 接收消息。
具体流程如下:
一个频道可以被多个订阅者进行关注。
发布者发布消息后会被订阅者接收
具体操作的命令如下:
测试
首先需要关注一个频道,他就可以一直监听频道的状态
127.0.0.1:6377> SUBSCRIBE myTest Reading messages... (press Ctrl-C to quit) 1) "subscribe" 2) "myTest" 3) (integer) 1 # 接收消息 1) "message" 2) "myTest" #频道名称 3) "\xe5\x93\x88\xe5\x93\x88\xe5\x93\x88" # 发布的内容 1) "message" 2) "myTest" 3) "123123" 1) "message" 2) "myTest" 3) "xiaoce"
使用PUBLISH 频道 内容
命令发布内容
127.0.0.1:6377> PUBLISH myTest "哈哈哈" #给指定频道发布消息 (integer) 1 127.0.0.1:6377> publish myTest 123123 (integer) 1 127.0.0.1:6377> publish myTest xiaoce (integer) 1
原理:
Redis是使用C实现的,通过分析Redis源码里的pubsub.c文件,了解发布和订阅机制的底层实现,籍此加深对Redis的理解。
Redis通过PUBLISH、SUBSCRIBE 和PSUBSCRIBE等命令实现发布和订阅功能。
通过SUBSCRIBE命令订阅某频道后, redis server里维护了一个字典,字典的键就是一个个频道 , 而字典的值则是一个链表,链表中保存了所有订阅这个channel的客户端。SUBSCRIBE 命令的关键.就是将客户端添加到给定channel的订阅链表中。
通过PUBLISH命令向订阅者发送消息,redis server会使用给定的频道作为键,在它所维护的channel字典中查找记录了订阅这个频道的所有客户端的链表,遍历这个链表,将消息发布给所有订阅者。
Pub/Sub从字面上理解就是发布( Publish)与订阅( Subscribe ) , 在Redis中,你可以设定对某- -个key值进行消息发布及消息订阅,当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。这一功能最明显的用法就是用作实时消息系统,比如普通的即时聊天,群聊等功能。
使用场景:
- 实时消息系统
- 实时聊天频道当做聊天室
- 订阅关注系统都是可以的
稍微复杂的场景我们会使用消息中间件,MQ、kafka
这篇关于Redis的发布和订阅的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-24Redis资料:新手入门快速指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-24Redis资料:新手入门教程与实践指南
- 2024-12-07Redis高并发入门详解
- 2024-12-07Redis缓存入门:新手必读指南
- 2024-12-07Redis缓存入门:新手必读教程
- 2024-12-07Redis入门:新手必备的简单教程
- 2024-12-07Redis入门:新手必读的简单教程
- 2024-12-06Redis入门教程:从安装到基本操作
- 2024-12-06Redis缓存入门教程:轻松掌握缓存技巧