文章目录

  • 发布与订阅

发布与订阅

通过执行SUBSCRIBE命令,客户端可以订阅一个或多个频道,当其他客户端向频道发送消息时,订阅者或者匹配频道的订阅者都会收到消息

原理

  • 订阅:当客户端执行SUBSCRIBE命令时,服务器会将客户端与pubsub_channels字典关联,如果当前频道没有订阅者,则在字典中创建一个当前频道的键,值设置为空链表客户端添加到链表;如果当前频道有订阅者,则将客户端添加到对应的键的链表末尾
  • 退订:当客户端执行UNSUBSCRIBE命令时,与SUBSCRIBE命令操作相反
// 订阅频道
SUBSCRIBE <channel>
// 退订频道
UNSUBSCRIBE <channel>
// 订阅模式,按照模式匹配频道
PSUBSCRIBE <pattern>
// 退订模式
PUNSUBSCRIBE <pattern>
// 发送消息
PUBLISH <channel> <message>// 返回服务器当前被订阅的频道,如果没有pattern则返回所有频道
PUBSUB CHANNELS [pattern]
// 返回这些频道的订阅者数量
PUBSUB NUMSUB [channel-1 channel-2 ...]
// 返回服务器当前被订阅模式的数量
PUBSUB NUMPAT

Redis基础(九)——发布与订阅相关推荐

  1. redis基础教程 --发布与订阅

    redis 发布订阅 redis发布 与订阅是一种信息通信模式,发送者(pub)发送信息,订阅者(sub)接收信息 客户端订阅消息 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 ...

  2. Redis基础—九、Redis订阅发布、Redis集群

    Redis基础-九.Redis订阅发布.Redis集群 一.Redis订阅发布 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息 ...

  3. Redis中的发布与订阅

    redis中实现发布与订阅相对于zookeeper非常简单.直接使用publish和subscribe就行. subscrible news; 订阅news这个channel publish news ...

  4. nodejs 实现 redis 的消息发布及订阅

    nodejs 实现 redis 的消息发布及订阅 业务需求 实现方法(koa) 流程 业务需求 大家好,我终于踩坑了哈哈哈哈--- 如果服务器是单线程的话 消息推送完全可以用websocket来实现, ...

  5. Redis中的发布与订阅的概念与以命令行的方式实现发布订阅举例

    场景 什么是发布与订阅 发布订阅是一种应用程序(系统)之间通讯,传递数据的技术手段,特别是在异构(不同语言)系统之间的作用非常明显. 发布订阅: 类似于微信中关注公众号/订阅号,公众号/订阅号发布的文 ...

  6. redis 笔记06 发布与订阅、事务、慢查询日志、监视器

    发布与订阅 1. 服务器状态在pubsub_channels字典保存了所有频道的订阅关系:SUBSCRIBE命令负责将客户端和被订阅的频道关联到这个字典里面,而UNSUBSCRIBE命令则负责 解除客 ...

  7. redis 发布订阅实际案例_【赵强老师】Redis的消息发布与订阅

    欢迎关注赵强老师微信公众号:myitshare Redis 作为一个publish/subscribe server,起到了消息路由的功能.订阅者可以通过subscribe和psubscribe命令向 ...

  8. nodejs redis 发布订阅_「赵强老师」Redis的消息发布与订阅

    Redis 作为一个publish/subscribe server,起到了消息路由的功能.订阅者可以通过subscribe和psubscribe命令向Redis server订阅自己感兴趣的消息类型 ...

  9. 第04讲:Redis消息的发布和订阅

    一.什么是消息的发布和订阅 Redis 发布订阅 (pub/sub) 是一种消息通信模式:发送者 (pub) 发送消息,订阅者 (sub) 接收消息. Tip:Redis 客户端(redis-cli) ...

  10. 【Redis笔记】发布与订阅

    Redis发布与订阅功能由PUBLISH,SUBSCRIBE,PSUBSCRIBE等命令组成. [SUBSCRIBE命令] 客户端可以订阅一个或多个频道,从而成为这些频道的订阅者(subscriber ...

最新文章

  1. iPhone中字符串的国际化
  2. oracle中表空间的相关操作
  3. js里面把密码encode_Python进阶最详细的JS加密登录X博
  4. ECMAScript 基础--原始类型
  5. springcloud ribbon @LoadBalance负载均衡源码流程分析
  6. windows环境下wampserver的配置教程
  7. linux properties 出现java.io.FileNotFoundException
  8. 7-3 作业调度算法--高响应比优先 (40 分)(思路+详解+vector容器做法)Come Baby!!!!!
  9. Spring MVC,Ajax和JSON第1部分–设置场景
  10. [react] 在React中如果去除生产环境上的sourcemap?
  11. MySQL的binlog及关闭方法
  12. webbench 压力测试软件
  13. 关于android中的ramdisk.img及uImage无法包含驱动模块(*.ko)的问题
  14. Himall商城枚举帮助类EnumHelper(2)
  15. “长江第一灯光秀”引关注 景观工程首次应用4G 路由
  16. 电路交换、报文交换、分组交换
  17. 路飞学城Python-Day49
  18. 浅谈ERP项目团队管理的四个方面
  19. uni-app云打包失败
  20. VBA word 常用代码及注释

热门文章

  1. 201521123050 《Java程序设计》第13周学习总结
  2. 使用PowerShell创建Azure Storage的SAS Token访问Azure Blob文件
  3. opencv函数制作的秒针模型
  4. SQLServer 批量插入数据的两种方法
  5. 创业思考:做生意不是靠学历
  6. nginx二进制编译-启动脚本编写
  7. System.setOut 重定向 memcached 的输出
  8. 使用DevExpress的WebChartControl控件绘制图表(柱状图、折线图、饼图)
  9. 打开一个页面,并监听该页面的关闭事件
  10. 英文版Windows2k服务器无法正常返回中文的问题