redis实现乐观锁

监控(Watch)

  悲观锁:

    什么时候都会出问题,无论做什么都加锁

  乐观锁:

    认为什么时候都不会出现问题,所以不会上锁!更新数据的时候去判断一下,再此期间是否有人修改过这个数据

    mysql获取version

    更新的时候比较version

  Redis监视测试

    watch key 监视key对象

 

测试多线程修改值,使用watch可以当做redis的乐观锁操作,执行前,另外一个线程修改了值,这个时候会导致第一个线程

事务执行失败

  

 

 

 需要解锁,取消监视,用unwatch(如果发现事务执行失败就先解锁),再重新监视watch key,输入命令后 exec(比对监视的

值是否发生变化,如果变化则失败,不变化则成功)

如果修改失败,获取最新的值就好

posted @ 2022-03-22 17:56  doremi429  阅读(231)  评论(0编辑  收藏  举报