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这个值。

    

 

相关文章:

  • 2021-12-22
  • 2022-12-23
  • 2021-12-12
  • 2021-09-25
  • 2021-12-11
  • 2022-12-23
  • 2021-07-30
  • 2021-07-09
猜你喜欢
  • 2021-11-06
  • 2021-12-02
  • 2020-02-25
  • 2022-12-23
  • 2021-07-07
  • 2021-09-29
相关资源
相似解决方案