Redis 事务 与 分布式锁


  Redis 事务实现需要用到 MULTI 和 EXEC 两个命令,事务开始先发送MULTI命令,然后执行事务中处理的命令,最后发送EXEC命令表示事务结束。

  Redis 事务不支持回滚操作

  与事务相关的命令还有WATCH 和 UNWATCH,如果WATCH了某个键,那么再执行事务如果修改该键,那么后面的事务会被取消。UNWATCH 可以在 WATCH之后MULTI之前取消掉某个键的监控。

  分布式锁

    保证分布式系统之间同步访问一个共享资源,需要通过互斥的方式来保证一致性。

    创建锁:

      Redis主要使用SETNX命令(set if not exists)。

      语法:SETNX key value

      功能:当且仅当key不存在,将key的值设置为value,并返回1;如果key已经存在,则不做任何操作,并返回0. 有点类似java的CAS操作。

      需要设置过期时间,防止加锁的客户端挂掉或超时。

    释放锁:

      使用WATCH命令,在执行完业务后比较key的值,如果没有改变则del这个值。

    

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM