直接用 composer require predis/predis 安装,需确保 PHP 启用 sockets/curl 扩展、Composer ≥2.0、正确引入 autoload.php,并用数组方式配置 Client 连接参数,最后通过 ping 验证连通性。

直接用 composer require predis/predis 就能装好,但要注意 PHP 版本、自动加载机制和连接配置方式——否则会报 Class 'Predis\Client' not found 或连接超时。
确认 PHP 环境和 Composer 可用性
不是所有服务器都默认启用 ext-sockets 或 ext-curl,而 Predis 依赖它们做底层通信。运行以下命令验证:
php -m | grep -E "(sockets|curl)"
如果没输出,需在 php.ini 中取消对应扩展的注释(如 extension=sockets),然后重启 PHP-FPM 或 Apache。另外确保 Composer 已全局安装且版本 ≥ 2.0(composer --version)。
执行安装并检查 autoload 是否生效
在项目根目录运行:
composer require predis/predis
安装后检查 vendor/autoload.php 是否被正确引入。常见错误是忘记在入口文件中 require 它,比如 Laravel 默认已处理,但原生 PHP 项目必须显式加载:
require __DIR__ . '/vendor/autoload.php';
若仍提示类找不到,请确认:
• vendor/predis/predis 目录存在
• composer.json 中有 "predis/predis": "^2.2"(或类似版本)
• 没有手动修改过 vendor/composer/autoload_classmap.php
初始化 Client 实例时避开常见配置坑
Predis 支持多种连接方式,但新手常因参数格式错误导致连接失败。推荐用数组配置而非 DSN 字符串:
$client = new Predis\Client([
'scheme' => 'tcp',
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
'timeout' => 5.0,
]);
注意:
• 不要写成 'scheme' => 'redis://' —— 这是非法值,会静默失败
• 若 Redis 启用了密码,必须加 'password' => 'yourpass',不能只靠 AUTH 命令补救
• 在 CLI 环境下测试时,记得用 php -a 或写个临时脚本,避免 Web 服务器缓存旧 autoload
连接后务必验证是否真正可用
光 new 出 Client 并不等于连上了。最简单的验证方式是执行一个无副作用命令:
try {
$client->ping();
echo "Connected OK";
} catch (Exception $e) {
echo "Failed: " . $e->getMessage();
}
如果报错 Connection refused,优先查 Redis 是否在运行(redis-cli ping)、防火墙是否放行 6379 端口、以及 bind 和 protected-mode 配置是否允许本地外连。很多问题其实出在 Redis 服务端,而不是 Predis 本身。










