Redis之订阅发布简单实例

开心一笑

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

提出问题

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

解决问题

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

命令:

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

PUBLISH channel message 
将信息发送到指定的频道。
Redis之订阅发布简单实例_第1张图片
这里写图片描述

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

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

Redis之订阅发布简单实例_第2张图片
这里写图片描述

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


Redis之订阅发布简单实例_第3张图片
这里写图片描述

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


Redis之订阅发布简单实例_第4张图片
这里写图片描述

client1和client2收到的信息如下:


Redis之订阅发布简单实例_第5张图片
这里写图片描述

例二:按照规则订阅 可以使用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都可以收到。

读书感悟

来自《阳光小美女》

  • 做你最想做的,其他都是扯蛋?!
  • 真正的失败者不是那些没有赢的人,而是那些害怕失败而不敢尝试的人。
  • 那些痛苦的日子才是生命中最好的日子,因为那些日子塑造了他。
  • 总结:电影讲述的是 :
    一个提前更年期的母亲,一个谈成功学的失败者,一个失意的同性恋,一个想成为飞行员的色盲,一个很色的老爷爷,一个阳光小美女……这是个玩笑

你可能感兴趣的:(Redis之订阅发布简单实例)