Redis中的监控,实现乐观锁
1、执行以下命令,但事务先不执行:
2、在事务执行之前,假设又有一个线程改变了zhangsan的值:
我们再开一个用户连接redis:
3、再执行上面的事务:
我们发现事务没有执行,因为我们用了watch命令监控了zhangsan,lisi。
当他们的值有发生变化时,事务不会执行。即使你在事务执行前,别的线程set zhangsan 100,即值没变,也会监控到。
取消监控:unwatch
当事务执行完之后会自动取消监控的keys。
当事务执行失败后,需要重新监控keys,然后开启新的事务,继续执行。