PHPackages                             superpms/program-redis - 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. [Caching](/categories/caching)
4. /
5. superpms/program-redis

ActiveLibrary[Caching](/categories/caching)

superpms/program-redis
======================

pms redis program

v1.0.x-dev(1mo ago)0361Apache-2.0PHPPHP &gt;=8.1

Since May 21Pushed 1mo agoCompare

[ Source](https://github.com/superpms/program-redis)[ Packagist](https://packagist.org/packages/superpms/program-redis)[ RSS](/packages/superpms-program-redis/feed)WikiDiscussions v1.0 Synced today

READMEChangelogDependencies (2)Versions (1)Used By (1)

superpms/program-redis
======================

[](#superpmsprogram-redis)

`program-redis` 是 PMS composer 体系里的 Redis program 包。它把项目级 `config('redis')` 接入 `pms\facade\RDb`，提供普通 Redis 连接、Swoole HTTP 连接池、常用 Redis helper、简单 Redis list 队列基类，以及阻塞订阅场景需要的连接隔离能力。

安装与挂载
-----

[](#安装与挂载)

```
composer require superpms/program-redis
```

包通过 `composer.json` 的 `autoload.files` 自动执行 `bin/autoload.php`。该入口会加载:

- `bin/helper.php`: 提供 `prdb_pool_autoclose()`
- `bin/autorun.php`: 挂载生命周期 hook

运行期接入顺序:

1. `LIFECYCLE_BOOT` 读取 `config('redis')` 并调用 `RDb::setConfig()`
2. Swoole 环境下，HTTP 生命周期启动时调用 `RDb::isPool(true)`
3. Swoole HTTP sandbox 销毁时调用 `prdb_pool_autoclose()` 归还连接池连接

快速使用
----

[](#快速使用)

```
use pms\facade\RDb;

RDb::set('cache:user:1', json_encode(['name' => 'Tom'], 320), 300);
$json = RDb::get('cache:user:1', '{}');

RDb::lock('order:pay:1001', 60, 10);
try {
    // critical section
} finally {
    RDb::unlock('order:pay:1001');
}
```

简单队列可以继承 `pms\RedisQueue`:

```
use pms\RedisQueue;

class MailWork extends RedisQueue {}

MailWork::rPush(json_encode(['to' => 'user@example.com'], 320));
$payload = MailWork::lPop();
```

主要模块
----

[](#主要模块)

- `pms\facade\RDb`: Redis facade，代理到 `pms\program\redis\Driver`
- `pms\program\redis\Driver`: 配置、连接实例、连接器切换和事件注册入口
- `pms\program\redis\RedisConfig`: 单个连接的配置值对象
- `pms\program\redis\connector\Redis`: 普通 ext-redis 连接器
- `pms\program\redis\connector\RedisPool`: Swoole `ConnectionPool` 连接器
- `pms\program\redis\builder\Redis`: 常用 Redis 操作封装和原生方法透传
- `pms\RedisQueue`: 基于 Redis list 的极简队列基类

Docs 导航
-------

[](#docs-导航)

- [文档入口](docs/00-index.md)
- [安装与配置](docs/guide/setup.md)
- [典型用法](docs/guide/usage.md)
- [公开 API](docs/reference/api.md)
- [配置项](docs/reference/configuration.md)
- [运行流程与连接池](docs/internals/runtime-and-pool.md)
- [队列与发布订阅](docs/internals/queue-and-subscribe.md)
- [异常、限制与排查](docs/operations/troubleshooting.md)

注意事项
----

[](#注意事项)

- 本包没有自带 `resource/config.php`，真实配置由项目侧 `config('redis')` 提供。
- `type` 当前真实支持值是 `redis`；Swoole 池化由运行期开关切换为 `redis-pool`，不是在配置里直接写池化类。
- `RedisConfig` 的部分属性是有类型且无默认值的，项目配置必须提供 `host`、`port`、`connect_timeout`、`retry_interval`、`read_timeout`、`retry_times`、`password` 等被读取字段。
- `subscribe()` 是阻塞调用，会隔离当前连接并把 Redis prefix 临时清空；业务侧应避免在同一流程里混用长阻塞订阅和普通短命令。

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance91

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity26

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

43d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/be4f8ca688945fc17bb53deca1a956f72abfef2bd156e542bf899b0d2b15c08d?d=identicon)[xiyiao](/maintainers/xiyiao)

---

Top Contributors

[![XiyiaoBoss](https://avatars.githubusercontent.com/u/170755009?v=4)](https://github.com/XiyiaoBoss "XiyiaoBoss (18 commits)")

### Embed Badge

![Health badge](/badges/superpms-program-redis/health.svg)

```
[![Health](https://phpackages.com/badges/superpms-program-redis/health.svg)](https://phpackages.com/packages/superpms-program-redis)
```

###  Alternatives

[beryllium/cachebundle

Provides an interface to Memcache for Symfony2 applications

33136.2k](/packages/beryllium-cachebundle)

PHPackages © 2026

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