Redis事务

1年前 (2020-02-16) 396次浏览 已收录 4个评论
  • 开启事务 multi
  • 执行事务 exec
  • 取消事务 discard

注意:如果事务中存在错误指令(语法),整个事务销毁。

            如果事务中存在错误指令,但语法不错,事务执行正确的指令,不执行错误的指令

所以redis的事务没有回滚,需要注意。


基于事务执行——–锁

对key添加监视锁,在执行exec前如果key发生了变化,终止事务执行

  • watch key1……

取消对所有key的监视

  • unwatch
  • 存在这个键
  • 对这个键进行监控
  • 启动事务
  • 在事务里的任何操作
  • 另一个客户端修改了这个键
  • 事务执行完毕后是nil,什么都不执行。

基于事务执行——–分布式锁

  • setnx lock-key value 设置一个公共锁
  • 设置后有返回值,有值返回设置失败,无值返回设置成功
  • 对于返回成功的,拥有控制权,进行下一步业务操作,操作完毕后通过del 释放锁
  • 对于返回失败的,不具有控制权。
获得锁失败返回0

对于获得锁宕机的客户端,可以限制持有锁的时间

  • expire lock-key second
  • pexpire lock-key milliseconds

渣渣龙, 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Redis事务
喜欢 (0)

您必须 登录 才能发表评论!

(4)个小伙伴在吐槽
  1. 奥利给
    2020-03-27 13:16
  2. 记住这个网站了
    2020-03-28 16:57
  3. 还可以
    2020-03-28 17:48
  4. 还可以
    2020-05-26 09:24