redis知识点记录

事务

命令原型时间复杂度命令描述返回值
MULTI 用于标记事务的开始,其后执行的命令都将被存入命令队列,直到执行EXEC时,这些命令才会被原子的执行。始终返回OK
EXEC 执行在一个事务内命令队列中的所有命令,同时将当前连接的状态恢复为正常状态,即非事务状态。如果在事务中执行了WATCH命令,那么只有当WATCH所监控的Keys没有被修改的前提下,EXEC命令才能执行事务队列中的所有命令,否则EXEC将放弃当前事务中的所有命令。原子性的返回事务中各条命令的返回结果。如果在事务中使用了WATCH,一旦事务被放弃,EXEC将返回NULL-multi-bulk回复。
DISCARD 回滚事务队列中的所有命令,同时再将当前连接的状态恢复为正常状态,即非事务状态。如果WATCH命令被使用,该命令将UNWATCH所有的Keys。始终返回OK。
WATCHkey [key ...]O(1)在MULTI命令执行之前,可以指定待监控的Keys,然而在执行EXEC之前,如果被监控的Keys发生修改,EXEC将放弃执行该事务队列中的所有命令。始终返回OK。
UNWATCHO(1)取消当前事务中指定监控的Keys,如果执行了EXEC或DISCARD命令,则无需再手工执行该命令了,因为在此之后,事务中所有被监控的Keys都将自动取消。始终返回OK。


multi

127.0.0.1:6379>  multi
OK
127.0.0.1:6379> set a 3
QUEUED
127.0.0.1:6379>  lpop a
QUEUED
127.0.0.1:6379>  set a 4
QUEUED
127.0.0.1:6379> get a
QUEUED
127.0.0.1:6379> exec
1) OK
2) (error) WRONGTYPE Operation against a key holding the wrong kind of value
3) OK
4) "4"
127.0.0.1:6379> get a
"4"

回滚 discard

127.0.0.1:6379> get a
"4"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set a 5
QUEUED
127.0.0.1:6379> discard     # 
OK
127.0.0.1:6379> get a     
"4"

watch

客户端1

127.0.0.1:6379> get a
"4"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incr a   # 此时,在另一个客户端2修改值
QUEUED
127.0.0.1:6379> exec 
(nil)
127.0.0.1:6379> get a  # 失效
"3"

客户端2

127.0.0.1:6379> decr a
(integer) 3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值