一、Redis事务介绍
redis事务就是一个命令执行的队列,将一系列预定命令包装成一个集体。当执行时,一次性按照添加顺序依次执行,中间不会被打断或者干扰。
二、事务操作
1、开启
命令:
multi
作用:设定事务的开启位置,此指令执行后,后续的所有指令均加入到事务中。
2、执行
命令:
exec
作用:设定事务的结束位置,同时执行事务。与multi成对出现,成对使用。
注意:加入事务的命令暂时进入到事务任务队列中,并没有立即执行,只有执行exec命令才开始执行
3、取消事务
命令:
discard
作用:终止当前事务的定义,发生在multi之后,exec之前
4、注意事项
手动回滚:
三、事务工作流程
四、锁
1、监视锁操作
对key添加监视锁
watch key1 key2 ...
取消对所有key的监视
unwatch
注意:当监控的对象发生变化时,则后面对应的事务操作将取消
2、分布式锁
使用setnx设置一个公共锁
setnx lock-key value
利用setnx命令的返回值特征,有值则返回设置失败,无值返回设置成功
对于设置成功的,拥有控制权,进行下一步的具体业务操作
对于设置失败的,不具有控制权,排队或等待
通过del操作释放锁
对锁加时效:
expire lock-key second
pexpire lock-key milliseconds