- 开启事务 multi
- 执行事务 exec
- 取消事务 discard
注意:如果事务中存在错误指令(语法),整个事务销毁。
如果事务中存在错误指令,但语法不错,事务执行正确的指令,不执行错误的指令
所以redis的事务没有回滚,需要注意。
基于事务执行——–锁
对key添加监视锁,在执行exec前如果key发生了变化,终止事务执行
- watch key1……
取消对所有key的监视
- unwatch

- 存在这个键
- 对这个键进行监控
- 启动事务
- 在事务里的任何操作
- 另一个客户端修改了这个键
- 事务执行完毕后是nil,什么都不执行。
基于事务执行——–分布式锁
- setnx lock-key value 设置一个公共锁
- 设置后有返回值,有值返回设置失败,无值返回设置成功
- 对于返回成功的,拥有控制权,进行下一步业务操作,操作完毕后通过del 释放锁
- 对于返回失败的,不具有控制权。


对于获得锁宕机的客户端,可以限制持有锁的时间
- expire lock-key second
- pexpire lock-key milliseconds

奥利给
记住这个网站了
还可以
还可以