高性能, 分布式, 并发抢占锁, 队列锁
分享链接:https://github.com/zhaocong6/lock
支持php进程锁, mysql数据并发锁等等.
也可以用于限制接口并发量
优点: 使用redis驱动, 性能优秀, 分布式
功能: 队列锁(非php轮询,使用redis通知等待,极大的降低了cpu使用率), 抢占锁
已在线上项目运行超过一个月, 日用户10万
如果对您有帮助,请帮我点个星.鼓励一下~~~
本帖已被设为精华帖!
本帖由系统于 6年前 自动加精
:+1:
@qloog 感谢您的鼓励!
关注走一波
关注一波走起!
src/Lock/Redis/Lock.php 方法queueLock



initQueueLockList 初始化队列锁,有效期默认6秒
addQueueLockList 执行闭包后,应该是释放锁的,代码上仍旧往锁填充数据,有效期默认6秒
感觉队列锁的初始化和新增等待队列的做法不是很理解,希望说明一下其中的原理,谢谢.
另外多参数抢占锁 locks 方法(代码位置:src/Lock/Redis/Lock.php)写的有点啰嗦,看上去是模仿 Laravel 的中间件嵌套的写法。我觉得可以简写成
mark