Redis之发布订阅-CSDN博客

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录


前言

Redis 发布订阅。


一、概述

Redis 发布订阅pub / sub是一种消息通信模式。

发送者pub发送消息订阅者sub接收消息。
Redis 客户端可以订阅任意数量的频道。
订阅/发布消息图
在这里插入图片描述
频道和订阅频道的客户端之间的关系
在这里插入图片描述
当有新消息通过 publish 命令发送给频道 这个消息就会被发送给订阅它的客户端
在这里插入图片描述

二、命令和实践

命令

这些命令被广泛用于构建即时通信应用比如网络聊天室chat room和实时广播、实时提醒等。

在这里插入图片描述

实践

窗口1

127.0.0.1:6379> SUBSCRIBE haoze

在这里插入图片描述

窗口2

127.0.0.1:6379> SUBSCRIBE haoze

在这里插入图片描述

窗口3

127.0.0.1:6379> PUBLISH haoze "hello,haoze"

在这里插入图片描述
观察窗口1、窗口2均接收到信息
在这里插入图片描述

三、原理

  • Redis 是使用 C 实现的通过分析 Redis 源码里的 pubsub.c 文件可以了解发布和订阅机制的底层实现。
  • Redis 通过 publish 、subscribe 和 psubscribe 等命令实现发布和订阅功能。
  • 通过 subscribe 命令订阅某频道后redis-server 里维护了一个字典字典的键就是一个个 channel。
  • 而字典的值则是一个链表链表中保存了所有订阅这个 channel 的客户端。
  • subscribe 命令的关键就是将客户端添加到给定 channel 的订阅链表中。
  • 通过 publish 命令向订阅者发送消息redis-server 会使用给定的频道作为键在它所维护的 channel 字典中查找记录了订阅这个频道的所有客户端的链表遍历这个链表将消息发布给所有订阅者。
  • pub / sub 从字面上理解就是发布Publish与订阅Subscribe在 Redis 中你可以设定对某一个 key 值进行消息发布及消息订阅当一个 key 值上进行了消息发布后所有订阅它的客户端都会收到相应的消息。
  • 这一功能最明显的用法就是用作实时消息系统比如普通的即时聊天群聊等功能。

总结

以上就是redis发布订阅的快速讲解。

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: redis