Redis之订阅发布简单实例

开心一笑

一男士中了奖,得到一个玩具。回到家里,他把三个孩子都叫到跟前,
说:“谁最听妈妈的话,从不和她顶嘴,妈妈让他做什么,他就乖乖地去做什么,
谁就能得到这个玩具。”三个孩子异口同声地说:“爸爸能得到。”

提出问题

Redis如何用命令实现订阅发布???

解决问题

Redis 发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息。

命令:

SUBSCRIBE channel [channel ...] 
订阅给定的一个或多个频道的信息。

PUBLISH channel message 
将信息发送到指定的频道。
这里写图片描述

接下来就用命令实现上图:

例一:
打开redis-cli 客户端(client1),查看当前所有key,只有一个ay_test
订阅key为ay_test的这个channel,如下:

这里写图片描述

打开另一个redis-cli(client2) 客户端同样订阅key为ay_test的这个channel,如下:


这里写图片描述

再打开另一个redis-cli 客户端(client3),发布信息,如下:


这里写图片描述

client1和client2收到的信息如下:


这里写图片描述

例二:按照规则订阅 可以使用PSUBSCRIBE命令订阅指定的规则

如下:
客户端client1订阅ay_test*这个channel:

127.0.0.1:6379> psubscribe ay_test*
Reading messages... (press Ctrl-C to quit)
1) "psubscribe"
2) "ay_test*"
3) (integer) 1
1) "pmessage"
2) "ay_test*"
3) "ay_test1"
4) "i am ay_test1"
1) "pmessage"
2) "ay_test*"
3) "ay_test10"
4) "i am ay_test1"

客户端client2发布信息:

127.0.0.1:6379> publish ay_test1 "i am ay_test1"
(integer) 1
127.0.0.1:6379> publish ay_test10 "i am ay_test1"
(integer) 1
127.0.0.1:6379>

只要是符合ay_test*这种格式,client1都可以收到。

读书感悟

来自《阳光小美女》

  • 做你最想做的,其他都是扯蛋?!
  • 真正的失败者不是那些没有赢的人,而是那些害怕失败而不敢尝试的人。
  • 那些痛苦的日子才是生命中最好的日子,因为那些日子塑造了他。
  • 总结:电影讲述的是 :
    一个提前更年期的母亲,一个谈成功学的失败者,一个失意的同性恋,一个想成为飞行员的色盲,一个很色的老爷爷,一个阳光小美女……这是个玩笑
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,180评论 19 139
  • 安全性 设置客户端连接后进行任何其他指令前需要使用的密码。 警告:因为redis 速度相当快,所以在一台比较好的服...
    OzanShareing阅读 1,868评论 1 7
  • NOSQL类型简介键值对:会使用到一个哈希表,表中有一个特定的键和一个指针指向特定的数据,如redis,volde...
    MicoCube阅读 4,091评论 2 27
  • 1.1 资料 ,最好的入门小册子,可以先于一切文档之前看,免费。 作者Antirez的博客,Antirez维护的R...
    JefferyLcm阅读 17,149评论 1 51
  • 摘自http://xiaoh.me/2016/06/30/redis-advanced/ 排序 redis支持对l...
    鸵鸟要抬头阅读 66,587评论 1 3