如何用PHP解决高并发问题?(附源码)-php教程-PHP中文网上篇文章给大家介绍了《让我们再进一步了解PHP流程控制语句之if语句吧!!!(附源码)》,本文继续给大家介绍PHP解决高并发问题https://www.php.cn/php-weizijiaocheng-476799.html
- 悲观锁,将库存字段number字段设为unsigned,当库存为0时,因为字段不能为负数,将会返回false,当高并发来时,可能会导致连接数用完,系统数据库奔溃
- 使用for update ,锁定操作的行
- FIFO,使用Redis先进先出,但是这有点又变成单线程的影子,如果内存不够还是会异常
- 文件锁,当关键方法中使用文件锁,这样操作完才释放锁。
- 乐观锁,增加一个version字段判断是否被更新过,但如果使用主从有延迟应该强制读主库。
- 使用redis的watch
$result = $redis->connect('127.0.0.1', 6379);
echo $mywatchkey = $redis->get("mywatchkey");
echo "剩余数量:".($rob_total-$mywatchkey-1)."<br/>";
$redis->hSet("watchkeylist","user_".mt_rand(1, 9999),'meiqiangdao');
php如何解决高并发问题 - 大数据 - 亿速
PHP高并发编程_争当做一个有趣的人的博客-CSDN博客_php并发编程