PHPackages                             nabao/laravel-lock - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. nabao/laravel-lock

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

nabao/laravel-lock
==================

高性能, 分布式, 并发抢占锁, 队列锁

1.0.7(6y ago)271.5k9MITPHPPHP &gt;=7.0

Since Dec 28Pushed 6y agoCompare

[ Source](https://github.com/zhaocong6/laravel-lock)[ Packagist](https://packagist.org/packages/nabao/laravel-lock)[ RSS](/packages/nabao-laravel-lock/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (1)Versions (9)Used By (0)

环境要求
====

[](#环境要求)

```
1.PHP >= 7
2.composer
3.redis(必须支持lua)
4.predis

```

composer 安装
===========

[](#composer-安装)

移步 [composer中文网](https://www.phpcomposer.com/).

redis 安装
========

[](#redis-安装)

[redis中文网](http://www.redis.net.cn/)

predis 安装
=========

[](#predis-安装)

```
composer require predis/predis

```

lock 安装
=======

[](#lock-安装)

```
第一步, 安装alravel-lock
composer require nabao/laravel-lock
第二步, 生成配置文件
php artisan vendor:publish --provider="Lock\LockServiceProvider"

```

抢占锁
===

[](#抢占锁)

lock(callable $callback, string $lock\_val)
-------------------------------------------

[](#lockcallable-callback-string-lock_val)

多进程并发时, 其中某一个进程得到锁后, 其他进程将被拒绝

```
$callback
            回调函数, 可返回值
$lock_val
            锁定值

```

多参数抢占锁
======

[](#多参数抢占锁)

lock(callable $callback, array $lock\_vals)
-------------------------------------------

[](#lockcallable-callback-array-lock_vals)

多进程并发时, 其中某一个进程得到锁后, 其他进程将被拒绝

```
$callback
            回调函数, 可返回值
$lock_vals
            锁定值(数组)

```

队列锁
===

[](#队列锁)

queueLock($closure, $lock\_val, $max\_queue\_process = 100)
-----------------------------------------------------------

[](#queuelockclosure-lock_val-max_queue_process--100)

多进程并发时, 其中某一个进程得到锁后, 其他进程将等待解锁(配置最大等待进程后, 超过等待数量后进程将被拒绝)

```
$callback
                回调函数, 可返回值
$lock_val
                锁定值
$max_queue_process
                队列最大等待进程

```

多参数队列锁
======

[](#多参数队列锁)

queueLock($closure, $lock\_vals, $max\_queue\_process = 100)
------------------------------------------------------------

[](#queuelockclosure-lock_vals-max_queue_process--100)

多进程并发时, 其中某一个进程得到锁后, 其他进程将等待解锁(配置最大等待进程后, 超过等待数量后进程将被拒绝)

```
$callback
                回调函数, 可返回值
$lock_vals
                锁定值(数组)
$max_queue_process
                队列最大等待进程

```

使用
==

[](#使用)

```
//静态调用
$lock_val = 'user:pay:1';
Lock::lock(function($redis){
   echo 'hello world!';
}, $lock_val);

//实例化调用
$lock = new Lock();
$lock_val = 'user:pay:1';
$lock->lock(function($redis){
    echo 'hello world!';
}, $lock_val);

//多参数锁
$lock = new Lock();
$lock_val[] = 'user:pay:1';
$lock_val[] = 'user:pay:2';
$lock->lock(function($redis){
    echo 'hello world!';
}, $lock_val);

```

限流
==

[](#限流)

isActionAllowed($key, $period, $max\_count)
-------------------------------------------

[](#isactionallowedkey-period-max_count)

```
$key        限制key
$period     限制时间(秒)
$max_count  限制时间内最大数量

```

config配置
========

[](#config配置)

```
 /*
    |--------------------------------------------------------------------------
    | lock配置文件
    |--------------------------------------------------------------------------
    |
    |drive 锁驱动(默认redis)
    |
    |redis redis驱动配置
    |   host 地址
    |   port 端口
    |
    |params 参数配置
    |   max_queue_process  进程池最大进程
    |   expiration         锁值过期时间
    |
    */
'drive' =>  'redis',

'redis' =>  [
    'host'                  =>  '127.0.0.1',
    'port'                  =>  6379,
    'read_write_timeout'    =>  0,
    'persistent'            =>  true,
],

'params' => [
    'max_queue_process' =>  100,
    'expiration'        =>  5
]

```

laravel-lock
============

[](#laravel-lock)

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity29

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity61

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~36 days

Recently: every ~30 days

Total

8

Last Release

2434d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1c94ee8ccffcabecd7bc49302cd8ee837d904930a3ad68d87658519fb731ac27?d=identicon)[zhaocong](/maintainers/zhaocong)

---

Top Contributors

[![zhaocong6](https://avatars.githubusercontent.com/u/26103783?v=4)](https://github.com/zhaocong6 "zhaocong6 (26 commits)")

---

Tags

lock

### Embed Badge

![Health badge](/badges/nabao-laravel-lock/health.svg)

```
[![Health](https://phpackages.com/badges/nabao-laravel-lock/health.svg)](https://phpackages.com/packages/nabao-laravel-lock)
```

###  Alternatives

[zerkalica/semaphore

This library provides an api for semaphore acquire and release

1119.0k1](/packages/zerkalica-semaphore)[pudongping/hyperf-wise-locksmith

A mutex library provider for the Hyperf framework, designed to enable serialized execution of PHP code in high-concurrency scenarios.

106.3k2](/packages/pudongping-hyperf-wise-locksmith)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
