sdyyf/rlock 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

sdyyf/rlock

Composer 安装命令:

composer require sdyyf/rlock

包简介

redis lock for laravel.

README 文档

README

Redis distributed lock for laravel/lumen

安装

composer require sdyyf/rlock

Laravel可通过如下命令发布配置文件

php artisan vendor:publish --provider="Sdyyf\Rlock\RlockServiceProvider"

如果你的项目没有vendor:publish命令,需要手动将配置文件复制到config目录下,配置文件路径:[项目根目录/vendor/sdyyf/rlock/config/rlock.php]

使用

配置

根据你的项目实际情形,修改 config/rlock.php 配置文件

connection  指定使用的redis连接,默认default
prefix      锁名称的统一前缀
lock_config 锁的默认配置
    expire       锁的默认有效时长,即取锁成功后持有锁的时长。单位:秒
    timeout      默认取锁超时的时长,超时放弃,单位:秒。用于自旋锁和排队锁
    sleep        默认自旋重试间隔,单位:毫秒。用于自旋锁重试
    queue_sleep  默认排队重试间隔,单位:毫秒。用于排队锁重试
    max_length   默认最大排队长度,队列已满时放弃排队。设置为0时,不限长度。用于排队锁重试

示例

/* 简单锁 */
$lock = Rlock::getSimpleLock('lockname', 10);
if ($lock->get()) {
    echo 'get lock succeed.';
} else {
    echo 'get lock failed.'
}

/* 自旋锁 */
$lock = Rlock::getSpinLock('lockname', 10, [
    'timeout' => 10,
    'sleep'   => 100
]);
if ($lock->get()) {
    echo 'get lock succeed.';
} else {
    echo 'get lock failed.'
}

/* 排队锁 */
//使用默认设置
//$lock = Rlock::getQueueLock('lockname', 10); 
//使用自定义设置
$lock = Rlock::getQueueLock('lockname', 10, [
    'timeout'    => 10,
    'sleep'      => 100,//不设置该参数时,默认值为lock_config.queue_sleep配置项设定值,注意这里的参数名为sleep
    'max_length' => 10
]);
if ($lock->get()) {
    echo 'get lock succeed.';
} else {
    echo 'get lock failed.'
}

回调支持

$lock = Rlock::getSimpleLock('lockname', 10);
//result为闭包执行结果,或者获取锁失败返回false
$result = $lock->get(function() {
    //your business logic...
});

sdyyf/rlock 适用场景与选型建议

sdyyf/rlock 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 18 次下载、GitHub Stars 达 3, 最近一次更新时间为 2022 年 05 月 12 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 sdyyf/rlock 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 sdyyf/rlock 我们能提供哪些服务?
定制开发 / 二次开发

基于 sdyyf/rlock 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 18
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 3
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 3
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-05-12