You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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-start
      
      后续要停止服务可执行redis-server --service-stop

2. 让redis-cli全局可用(可选但方便)

  • 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在系统变量列表中找到Path,点击「编辑」
  • 添加Redis解压目录的路径(比如C:\Redis),点击确定保存
  • 重启你的终端,现在在任意目录输入redis-cli就能打开Redis命令行客户端了

3. 调整Laravel的Redis客户端配置

因为你安装的是predis,但配置默认指向phpredis,需要修改一下:

  • 打开项目根目录的.env文件,添加一行:
    REDIS_CLIENT=predis
    
    或者直接修改config/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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.27 20:02:49