Redisent 是一个已废弃的极简 PHP Redis 客户端,仅约 200 行代码,无 Composer 包可用(自 2021 年下架),需手动引入源码,不支持 Redis 4.0+ 命令、连接池、哨兵与集群,且无维护。

Redisent 是一个极简的 PHP Redis 客户端库,仅约 200 行代码,不依赖 Composer 自动加载以外的扩展(如 ext-sockets 或 ext-curl),适合嵌入小型项目、CLI 工具或资源受限环境。但它**不是主流选择**——Predis 更成熟,phpredis 性能更强,Redisent 的维护已基本停滞(最后更新在 2015 年),且不支持 Redis 4.0+ 新增命令(如 JSON.SET、ZMSCORE)、连接池、哨兵、集群等关键能力。
如果你确认要使用它(例如兼容遗留脚本、教学演示、或明确接受功能限制),以下是实际可跑通的操作路径:
确认 Redisent 是否真被需要,还是误认了名字
常见混淆点:Redisent ≠ Predis ≠ phpredis。
Redisent 的 GitHub 仓库是 mnichols/redisent,Composer 包名是 mnichols/redisent;而 predis/predis 是另一套完全不同的实现。
运行以下命令验证是否真想装它:
composer require mnichols/redisent
如果报错 Package mnichols/redisent not found,说明该包已从 Packagist 移除(事实如此:自 2021 年起不可用)。当前唯一可行方式是手动下载源码并 require —— 这意味着你放弃 Composer 的版本管理与依赖解析能力。
手动集成 Redisent(无 Composer 包可用)
因为 mnichols/redisent 已下线,你只能通过原始源码方式引入:
- 从归档镜像(如 Wayback Machine)下载
Redisent.php文件 - 保存到项目目录,例如
lib/Redisent.php - 在代码中显式引入:
require __DIR__ . '/lib/Redisent.php'; - 实例化时注意:它不使用命名空间,直接 new
Redisent即可
示例连接代码:
$redis = new Redisent('127.0.0.1', 6379);
$redis->set('foo', 'bar');
echo $redis->get('foo'); // 输出 bar
⚠️ 注意:Redisent 默认无密码支持;若 Redis 启用了 requirepass,必须在构造后立即执行 $redis->auth('yourpass'),否则后续所有命令返回 false。
为什么你会遇到 Class 'Redisent' not found
这不是 autoload 配置问题,而是根本原因:
-
composer require mnichols/redisent在当前 Packagist 上**完全失败**,不会生成任何 vendor 文件 - 即使你伪造了 composer.json 手动添加该行,
composer install也会跳过它(因包不存在) - 没有
autoload规则 → 没有vendor/autoload.php可加载 → 必须手写require
如果你看到这个错误,第一反应不应该是检查 vendor/ 目录,而是确认你是否真的需要一个已废弃、无维护、无社区支持的库。
更现实的轻量替代方案
所谓“轻量”,不应以牺牲稳定性与兼容性为代价。推荐以下真正可行的替代路径:
- 用
predis/predis:纯 PHP、Composer 原生支持、持续维护、支持哨兵/集群/Unix socket/redis://DSN,且体积仍远小于 phpredis 扩展本身 - 用
phpredis扩展 + 简单封装:编译安装后,仅需几行代码封装Redis类,性能和功能都强得多 - 在 Laravel/Hyperf/Yii 中,直接用框架内置 Redis 组件(如
hyperf/redis或yii\redis\Connection),它们底层已适配多种客户端,无需自己造轮子
真正容易被忽略的点是:轻量 ≠ 少代码,而在于部署成本低、调试路径短、出问题有人跟进。Redisent 在 2026 年已不具备这些条件。


















