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类加数据