Redis消息订阅和发布, Redis事务概念,和操作

Redis消息订阅发布

1、subscribe channel:订阅频道,例如:subscrible mychat,订阅mychat这个频道
2、psubscribe channel* :批量订阅频道。例如:psubscrible s*,订阅以“s”开头的频道
3、publish channel content:在指定的频道中发布消息。例如:psubscrible s*,订阅以“s”开头的频道,如publish mychat 'today is a newday'

步骤一、

开启3个窗口

在第一个链接中,订阅mtychat频道。此时如果没有人发布消息,当窗口处于等待状态。

在第一个窗口上订阅mychat频道

127.0..0.1:6379> subscribe mychat

在这里插入图片描述

步骤二、

在另外一个窗口上,在mychat频道中,发布消息。

127.0..0.1:6379> publish mychat '111'

在这里插入图片描述

同时在第一个窗口上会显示
在这里插入图片描述
对比
在这里插入图片描述

步骤三、

再第三个窗口,批量订阅以my开头的所有频道

127.0..0.1:6379> psubscribe my*

步骤四、

在第二个窗口,分别在“mychat”和“mychat2”发布消息

127.0..0.1:6379> publish mychat '111'
127.0..0.1:6379> publish mychat '222'
127.0..0.1:6379> publish mychat '333'
127.0..0.1:6379> publish mychat2 '444'

在这里插入图片描述
第三个窗口上显示全部my开头订阅的频道的信息
在这里插入图片描述
第一个窗口只显示mychat的信息
在这里插入图片描述
三个窗口效果的对比
在这里插入图片描述

Redis事务

1、概念

和众多其他的数据库一样,Redis作为NoSQL数据库也同样提供了事务机制。
在Redis中,MULTI/EXEC/DISCARD/这3个命令是我们实现事务的基石。

2、Redis的事务特征

在这里插入图片描述
在这里插入图片描述

3、命令解释

在这里插入图片描述

4、测试

1、正常执行事务

步骤1:在窗口1,设置num,并获取数据

127.0..0.1:6379> set num 1
127.0..0.1:6379> get num

在这里插入图片描述

步骤2:在窗口2,num累加1,并获得数据
让num自增incr

127.0..0.1:6379> incr num 

在这里插入图片描述
步骤3:在窗口1,获得数据

127.0..0.1:6379> get num 

在这里插入图片描述
步骤4:在窗口1,开启事务,多次累加数据
a)开启事务

127.0..0.1:6379> multi

在这里插入图片描述
b)累加num\

127.0..0.1:6379> incr num 
127.0..0.1:6379> incr num

在这里插入图片描述
步骤5:在窗口2,获得数据
获取数据,发现并没有自增

127.0..0.1:6379> get num

需要将开启的事务提交事务
步骤6:在窗帘1当中 提交事务

127.0..0.1:6379> exec

在这里插入图片描述
再次获取对应的num

127.0..0.1:6379> get num

在窗口1当中提交事务之后,对应的num发生了改变
在这里插入图片描述

2、回滚事务(开启事务之后不执行对应的事假,回到初始的状态)、

在这里插入图片描述

3、失败命令(开启事务之后,事务当中有错误的语句,将被忽略掉执行后面的语句)

incrby类加数据
在这里插入图片描述

发布了44 篇原创文章 · 获赞 67 · 访问量 3374

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/104791936