简单事务的乐观锁实战
解释:乐观锁(Optimistic Lock), 顾名思义,就是很乐观。
每次去拿数据的时候都认为别人不会修改,所以不会上锁。
watch命令会监视给定的key,当exec时候如果监视的key从调用watch后发生过变化,则整个事务会失败。
也可以调用watch多次监视多个key。这样就可以对指定的key加乐观锁了。
注意watch的key是对整个连接有效的,事务也一样。
如果连接断开,监视和事务都会被自动清除。
当然了exec,discard,unwatch命令都会清除连接中的所有监视。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
$strKey = 'Test_bihu_age' ; $redis-> set ($strKey,10); $age = $redis-> get ($strKey); echo "---- Current Age:{$age} ---- <br/><br/>" ; $redis->watch($strKey); // 开启事务 $redis->multi(); //在这个时候新开了一个新会话执行 $redis-> set ($strKey,30); //新会话 echo "---- Current Age:{$age} ---- <br/><br/>" ; //30 $redis-> set ($strKey,20); $redis->exec(); $age = $redis-> get ($strKey); echo "---- Current Age:{$age} ---- <br/><br/>" ; //30 //当exec时候如果监视的key从调用watch后发生过变化,则整个事务会失败 |
更多学习内容请访问:
腾讯T3-T4标准精品PHP架构师教程目录大全,只要你看完保证薪资上升一个台阶(持续更新)