php+redis 学习 三 乐观锁

乐观锁(Optimistic Lock), 顾名思义,就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号等机制。乐观锁适用于多读的应用类型,这样可以提高吞吐量,像数据库如果提供类似于write_condition机制的其实都是提供的乐观锁。

<?php header('content-type:text/html;chaeset=utf-8'); /** * redis实战 * * 实现乐观锁机制 * * @example php optimistic-lock.php */ $redis = new Redis(); $redis->connect('127.0.0.1', 6379); // 监视 count 值 $redis->watch('count'); // 开启事务 $redis->multi(); // 操作count $time = time(); $redis->set('count', $time); //------------------------------- /** * 模拟并发下其他进程进行set count操作 请执行下面操作 * * redis-cli 执行 $redis->set('count', 'is simulate'); 模拟其他终端 */ sleep(10); //------------------------------- // 提交事务 $res = $redis->exec(); if ($res) { // 成功... echo 'success:' . $time; return; } // 失败... echo 'fail:' . $time;

  

您的资助是我最大的动力!
金额随意,欢迎来赏!

如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

如果,想给予我更多的鼓励,求打

因为,我的写作热情也离不开您的肯定支持,感谢您的阅读!

原文地址:https://www.cnblogs.com/GreenForestQuan/p/7492119.html