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

Laravel安装GeneaLabs/laravel-model-caching后Redis连接拒绝求助

解决 Laravel Model Caching 依赖 Redis 连接拒绝的问题

嘿,我来帮你捋捋怎么解决这个问题——你碰到的情况其实是 GeneaLabs/laravel-model-caching 包默认把 Redis 作为缓存驱动来用,哪怕你用 MySQL 做数据库,只要启用了模型缓存,就需要 Redis 服务正常跑起来,而且配置得没问题。咱们一步步排查:

1. 先确认本地 Redis 服务有没有启动

你收到的「No connection could be made because the target machine actively refused it」错误,十有八九是本地根本没运行 Redis 服务。因为你没用 Homestead,得自己手动装 Redis 并启动:

  • Windows:去 Redis 官方下载适配 Windows 的版本,安装完成后,要么在系统服务列表里找到 Redis 服务,设置成自动启动并启动它;要么打开命令行,进入 Redis 安装目录,运行 redis-server.exe 直接启动。
  • Mac:用 Homebrew 安装的话,先执行 brew install redis,然后启动服务 brew services start redis,这样开机也会自动启动。
  • Linux:比如 Ubuntu 这类发行版,用 sudo apt install redis-server 安装,然后启动 sudo systemctl start redis,设置开机自启 sudo systemctl enable redis。

启动之后,打开终端敲 redis-cli ping,如果返回 PONG,说明 Redis 服务已经正常运行了。

2. 检查 Laravel 的缓存配置是否正确

打开项目根目录的 .env 文件,确认以下几个配置项:

CACHE_DRIVER=redis
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_PASSWORD= # 要是你的 Redis 设置了密码,就填在这里,没设置就留空

另外也可以看看 config/cache.php 里的 redis 配置块,确保和 .env 的值一致:

'redis' => [
    'driver' => 'redis',
    'connection' => 'cache',
],

如果你的 Redis 用了非默认端口或者设置了密码,一定要对应修改这些配置。

3. 可选:不想折腾 Redis?换其他缓存驱动

要是你暂时不想搞 Redis,也可以把缓存驱动换成 Laravel 支持的其他类型,比如 file 或者 database:

  • 换成 file 驱动:把 .env 里的 CACHE_DRIVER 改成 file 就行,这个不需要额外配置,Laravel 会自动在 storage/framework/cache/data 目录生成缓存文件。
  • 换成 database 驱动:把 .env 里的 CACHE_DRIVER 改成 database,然后跑两个迁移命令创建缓存表:
    php artisan cache:table
    php artisan migrate
    

这样模型缓存就会用数据库来存储,完全不需要 Redis 了。

4. 验证模型缓存是否正常工作

最后你可以测试下模型缓存有没有生效。比如确保你的模型里用了 GeneaLabs\LaravelModelCaching\Traits\Cachable trait,然后执行一个查询,检查缓存是否生成:

// 举个例子,假设你的 User 模型
$user = User::first();
// 查看对应缓存是否存在
dd(Cache::has('model:User:1'));

如果返回 true,说明缓存已经正常工作啦。

内容的提问来源于stack exchange,提问作者Ali Özen

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:23:39