redis - 6 事务

1. 事务的操作

1. 开始事务: multi  # 此命令执行之后,后续所有的指令均加入到事务中
2. 执行事务: exec 
3. 取消事务: discard  # 终止multi之后的所有命令

2. 事务的注意事项

1. 当事务中有语法错误时,multi下的所有命令都不会执行
2. 当语法没有错误,但是命令执行有错误时,除错误语句外,其他所有的语句都会被执行,没有mysql的原子性。一旦出现这种情况,需要自己手动解决

3. 锁

1. watch key1 [key2]  # 开启事务之前使用,如果在exec之前,key发生了变化,则事务不执行
2. unwatch  # 取消对所有key的监视

4. 分布式锁

1. setnx lock-key value
    返回0表示设置失败(锁已经存在),返回1表示设置成功(创建锁)
2. 通过del lock-key 解除锁
3. 风险:所有人需要使用相同的lock-key,不容易控制
4. 解决死锁问题,设置超时时间
  expire lock-key second
  pexpire lock-key milliseconds

 

posted @ 2021-11-21 16:08  10132714  阅读(15)  评论(0编辑  收藏  举报