mix/redis
Composer 安装命令:
composer require mix/redis
包简介
Coroutine redis library based on Swoole, built-in connection pool
README 文档
README
OpenMix 出品:https://openmix.org
Mix Redis
PHP Redis for use in multiple execution environments, with support for FPM, CLI, Swoole, WorkerMan, and optional connection pool (coroutine)
可在各种环境中使用的 PHP Redis,支持 FPM、CLI、Swoole、WorkerMan,可选的连接池 (协程)
技术交流
知乎:https://www.zhihu.com/people/onanying
官方QQ群:284806582
, 825122875
敲门暗号:redis
Installation
composer require mix/redis
Quick start
$rds = new Mix\Redis\Redis('127.0.0.1', 6379, 'password', 0); $rds->set('foo', 'bar'); $value = $rds->get('foo');
Start Pool
在 Swoole 协程环境中,启动连接池
$maxOpen = 50; // 最大开启连接数 $maxIdle = 20; // 最大闲置连接数 $maxLifetime = 3600; // 连接的最长生命周期 $waitTimeout = 0.0; // 从池获取连接等待的时间, 0为一直等待 $rds->startPool($maxOpen, $maxIdle, $maxLifetime, $waitTimeout); Swoole\Runtime::enableCoroutine(); // 必须放到最后,防止触发协程调度导致异常
连接池统计
$rds->poolStats(); // array, fields: total, idle, active
Transaction Multi & Pipeline
Multi
事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由exec命令原子性(atomic)地执行。
$tx = $rds->multi(); $tx->set('foo', 'bar'); $tx->set('foo1', 'bar1'); $ret = $tx->exec();
Pipeline
客户端将执行的命令写入到缓冲中,最后由exec命令一次性发送给redis执行返回。
$tx = $rds->pipeline(); $tx->set('foo', 'bar'); $tx->set('foo1', 'bar1'); $ret = $tx->exec();
Transaction Watch
监听值的变化,如果执行时有变化则事务失败,无变化则事务成功。
$tx = $rds->watch('foo'); $tx->incr('foo'); $ret = $tx->exec();
Logger
日志记录器,配置后可打印全部SQL信息
$db->setLogger($logger);
$logger 需实现 Mix\Redis\LoggerInterface
interface LoggerInterface { public function trace(float $time, string $cmd, array $args, ?\Throwable $exception): void; }
License
Apache License Version 2.0, http://www.apache.org/licenses/
mix/redis 适用场景与选型建议
mix/redis 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 10.17k 次下载、GitHub Stars 达 5, 最近一次更新时间为 2018 年 12 月 27 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「redis」 「coroutine」 「mix」 「swoole」 「connection-pool」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 mix/redis 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 mix/redis 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 mix/redis 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Helper plugin for Laravel Mix in Craft CMS templates
Asynchronous coroutines for PHP 7.
Microservice RPC through message queues.
The CodeIgniter Redis package
贝嘟分布式缓存扩展
DI, IoC container, reference spring bean
统计信息
- 总下载量: 10.17k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 5
- 点击次数: 13
- 依赖项目数: 12
- 推荐数: 0
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2018-12-27