一句话回答你 :
你可以只操作 composer require predis/predis,但前提是你的电脑上已经有一个在运行的 Redis 服务 。
如果没有,那 Predis 这个 PHP 库连谁去?它就是个客户端,必须有个 Redis 服务器端才能工作。
打个比方:
-
Redis 服务 = 银行金库(存钱的地方)
-
predis/predis = 你的银行卡(让 PHP 能存取钱的工具)
-
Composer 引入 predis = 在 PHP 里办了一张银行卡
你现在只办了卡,但金库还没盖,钱没地方存。所以 Redis 服务是必须单独安装的,这和 PHP 扩展无关,是两个不同的东西。
回答你原来的疑问:
"使用 Composer 引入 predis/predis 纯 PHP 库,无需安装扩展"
这个说法完全正确,但它指的是不需要给 PHP 装一个 C 写的 redis 扩展 (php_redis.dll)。
它没说的是,Redis 服务器本身还是要有,就像你用 PDO 不需要装 mysql 扩展,但 MySQL 服务必须安装和运行一样。
所以,别被字面绕进去。装个 Redis 服务 + composer 引入 predis,万事大吉。
第一步:让 Redis 服务跑起来(二选一,比之前更简单)
-
最简单的方法:下载 Memurai(合法的 Windows Redis 替代品)
-
直接去 Download Memurai for Windows | Memurai 下载开发者版。
-
像安装普通软件一样下一步,默认端口 6379,什么配置都不用改。
-
装完它就在后台运行了,开机自动启动。
-
Download Memurai for Windows | Memurai

Download Memurai for Windows | Memurai




1. 先确认 Memurai 的服务正在运行
打开命令提示符,输入:
cmd
复制
下载
netstat -ano | findstr :6379
如果看到一行 TCP 127.0.0.1:6379 LISTENING,说明 Redis 服务已启动,端口正在监听,这是最重要的。
如果没有任何输出,说明服务没跑起来,需要去"服务"管理器启动 Memurai 服务,或重启电脑。

4. 终极验证(跳过命令行工具)
你其实不需要 cmd 里的 redis-cli 也能确认服务正常。直接用 PHP predis 测试即可,这比什么都准。
创建一个 PHP 文件(比如 test.php),写入:
<?php
require 'vendor/autoload.php';
try {
$redis = new Predis\Client([
'scheme' => 'tcp',
'host' => '127.0.0.1',
'port' => 6379,
]);
$redis->set('hello', 'work');
echo $redis->get('hello'); // 应该输出 work
} catch (Exception $e) {
echo '连接失败: ' . $e->getMessage();
}

现在总结一下你目前的状态:
-
✅ Redis 服务 (Memurai)在
127.0.0.1:6379正常运行 -
✅ predis 客户端通过 Composer 正确安装
-
✅ PHP 可以成功连接 Redis 并进行读写
2. 学习更多 Redis 命令(通过 predis 方法)
| 目的 | predis 方法示例 |
|---|---|
| 设置带过期时间的缓存 | $redis->setex('key', 3600, 'value') |
| 删除缓存 | $redis->del('key') |
| 检查 key 是否存在 | $redis->exists('key') |
| 递增/递减 | $redis->incr('counter') / decr() |
| Hash 操作 | $redis->hset('user:1001', 'name', 'Tom') |
你现在的缓存系统已经"活"了,可以自由地读写 Redis。需要我帮你设计具体的缓存场景(比如缓存全站配置、Session 共享、排行榜)随时说,我会帮你写出对应的代码。
第二步:在你的 PHP 项目里
composer require predis/predis
然后写代码:
<?php
require 'vendor/autoload.php';
$redis = new Predis\Client([
'scheme' => 'tcp',
'host' => '127.0.0.1',
'port' => 6379,
]);
$redis->set('test', 'hello redis');
echo $redis->get('test');
这样就能正常用了。

2. 用记事本编辑配置文件
右键单击 memurai.conf,选择 "用记事本打开" (或"打开方式" -> "记事本")。
搜索关键词 requirepass,你会看到这一行(默认被注释):
# requirepass foobared
把前面的 # 去掉,把 foobared 换成你自己的密码,例如:
requirepass MyStr0ngP@ssword
保存文件并关闭。
3. 重启 Memurai 服务
打开 Windows 服务管理器:Win + R -> 输入 services.msc -> 回车。
在列表中找到 Memurai 服务,右键选择 "重新启动"。

方法一:以管理员身份运行记事本(推荐,最简单)
-
按
Win键,输入记事本(或Notepad)。 -
在搜索结果上右键 ,选择 "以管理员身份运行"。
-
在记事本里点 文件 → 打开,路径输入:
C:\Program Files\Memurai\memurai.conf点"打开",现在就可以编辑并保存了。
'tcp', 'host' => '127.0.0.1', 'port' => 6379, 'password' => $redisPassword, // 密码认证 ]); // 测试写入和读取 $redis->set('hello', 'Redis 带密码也正常工作了!'); echo $redis->get('hello') . PHP_EOL; } catch (Exception $e) { echo '连接或操作失败: ' . $e->getMessage() . PHP_EOL; }

提供的 config/redis.php 是一个 PHP 配置文件
如果你是在原生 PHP 中使用 Predis(非框架)
对应的 Predis 客户端初始化代码则是:
return [
'host' => '127.0.0.1',
'port' => 6379,
'password' => '1234569aaa', // 在这里写上密码
'database' => 0,
'timeout' => 2.5,
];
前提条件(再提醒一下)
这个密码必须与你在 memurai.conf 中 requirepass 设置的完全一致,且修改配置后已重启 Memurai 服务。否则连接会认证失败。
在 Redis 里,database 指的是逻辑数据库的编号,不是 MySQL 那种数据库。
Redis 默认有 16 个逻辑数据库 ,编号从 0 到 15。
配置中的 'database' => 0 表示连接后默认使用 0 号数据库。
你可以把它理解为"不同的命名空间"
-
不同编号的数据库之间数据完全隔离。
-
比如,
0号库存放业务缓存,1号库存放 Session 数据,互不影响。 -
切换数据库用
SELECT 1命令,Predis里也可以调用$redis->select(1)。
一般情况下,保持 0 即可
除非你有明确的隔离需求(比如多个应用共用一个 Redis 实例),否则不用改它,默认 0 号库完全够用。
注意 :Redis Cluster 模式不支持多个数据库,只能使用 0 号库。
这个不能替代 Redis 服务。
Redis for VS Code 是一个 VS Code 的图形化管理插件 ,它只是让你在编辑器里查看和操作 Redis 数据的工具。
打个比方:它相当于数据库的管理客户端(如 Navicat),而不是数据库服务器本身。
你必须先有一个正在运行的 Redis 服务(如 Memurai、Docker Redis 或 Windows 版 Redis),然后这个 VS Code 插件才能去连接它。