Windows 10环境下Laravel 8安装Redis后redis-cli无法使用的问题排查与解决
解决Windows 10中
redis-cli命令不可用的问题 问题背景
你在Windows 10上装好Laravel 8后,通过composer require predis/predis安装了PHP的Redis客户端,但运行redis-cli时却收到命令不存在的报错,你的config/database.php里Redis配置如下:
'redis' => [ 'client' => env('REDIS_CLIENT', 'phpredis'), 'options' => [ 'cluster' => env('REDIS_CLUSTER', 'redis'), 'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'), ], 'default' => [ 'url' => env('REDIS_URL'), 'host' => env('REDIS_HOST', '127.0.0.1'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_DB', '0'), ], 'cache' => [ 'url' => env('REDIS_URL'), 'host' => env('REDIS_HOST', '127.0.0.1'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', '6379'), 'database' => env('REDIS_CACHE_DB', '1'), ], ]
问题根源
其实核心原因很明确:你只安装了让Laravel能和Redis通信的PHP客户端库(predis),但根本没在Windows系统上安装Redis服务本身。redis-cli是Redis官方自带的命令行工具,属于Redis服务安装包的一部分,没装Redis服务的话,系统自然找不到这个命令。
另外还有个隐藏小问题:你的Laravel配置里默认Redis客户端是phpredis(PHP扩展),但你装的是predis(纯PHP库),这之后可能会出现连接失败的问题,后面会一起解决。
解决步骤
1. 安装Redis服务到Windows 10
Redis官方没有原生Windows版本,但微软维护了适配Windows的分支,操作步骤如下:
- 下载Redis Windows版本的压缩包,解压到本地一个容易访问的目录(比如
C:\Redis) - 打开命令提示符,进入解压后的目录:
- 临时启动Redis服务:执行
redis-server.exe redis.windows.conf,注意这个窗口不能关闭,否则服务会停止 - (推荐)安装成Windows服务,实现开机自动启动:
安装完成后启动服务:redis-server --service-install redis.windows.conf --loglevel verbose
后续要停止服务可执行redis-server --service-startredis-server --service-stop
- 临时启动Redis服务:执行
2. 让redis-cli全局可用(可选但方便)
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在系统变量列表中找到
Path,点击「编辑」 - 添加Redis解压目录的路径(比如
C:\Redis),点击确定保存 - 重启你的终端,现在在任意目录输入
redis-cli就能打开Redis命令行客户端了
3. 调整Laravel的Redis客户端配置
因为你安装的是predis,但配置默认指向phpredis,需要修改一下:
- 打开项目根目录的
.env文件,添加一行:
或者直接修改REDIS_CLIENT=predisconfig/database.php里的默认值:'client' => env('REDIS_CLIENT', 'predis'),
4. 验证连接是否正常
可以在Laravel里写个简单的测试路由:
Route::get('/test-redis', function () { Redis::set('greeting', 'Hello from Redis!'); return Redis::get('greeting'); });
启动Laravel服务后访问这个路由,如果返回Hello from Redis!,说明一切配置正常。
内容的提问来源于stack exchange,提问作者Pouya Vaghefi
相关产品推荐
相关产品推荐

