PHP借助redis 的锁机制解决并发或者网络问题导致重复插入MYSQL的问题

作者 : 超级管理员 本文共386个字,预计阅读时间需要1分钟 发布时间: 2021-07-30 共151人阅读

加锁机制。代码进入操作前检查操作是否上锁,如果锁上,中断操作。否则进行下一操作,第一步将操作上锁,然后执行代码,最后执行完代码别忘将操作锁打开。不然你下去执行就没有办法进行了。

上锁代码非常多,楼上给出的就是其中一种。redis、memcache、cache文件都可以,如果操作并发比较高的话,建议用楼上这种用redis。(其实就是使用string数据类型,给锁key赋个值{加锁},开锁就将这个key的值清空或者或赋0值 )

$lock_status = $redis->get('lock_state');
if ($lock_status == 0 || empty($lock_status)) {
    $redis->set('lock_state', 3600, 1); #操作上锁
    #操作代码
    $redis->set('lock_state', 3600, 0); #操作解锁
} else {
    #上锁后的操作
}
本站所发布的资源均来源于互联网,仅限用于研究学习,不得将软件用于商业或者非法用途,否则一切后果请用户自负!如果侵犯了您的权益请与我们联系!您必须在下载后的24个小时之内,从您的手机和电脑中彻底删除。 如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请与我们联系处理!
互利网 » PHP借助redis 的锁机制解决并发或者网络问题导致重复插入MYSQL的问题

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
提示下载完但解压或打开不了?
最常见的情况是下载不完整:可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

发表评论