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

Laravel配置Redis缓存仍调用数据库表问题求助

问题排查与修复方案

从错误栈可以看出,系统在检查维护模式状态时,依然使用了DatabaseStore而非Redis,这是核心问题。以下是具体修复步骤:

1. 修正config/cache.php的配置结构

你的cache.php里多了一个冗余的"driver"键,Laravel的缓存配置中,默认存储由default指定,而非直接定义driver,这个冗余配置会导致冲突。同时修正lock_connection的连接名称(需与config/database.php中存在的Redis连接名匹配):

<?php declare(strict_types=1);

return [
    'default' => env('CACHE_STORE', 'redis'),
    'stores' => [
        'redis' => [
            'driver' => 'redis',
            'connection' => env('REDIS_CACHE_CONNECTION', 'cache'),
            // 改为database.php中已定义的Redis连接名,比如'default'或'cache'
            'lock_connection' => env('REDIS_CACHE_LOCK_CONNECTION', 'default'),
        ],
    ],
    'prefix' => env('CACHE_PREFIX', 'MYT')
];

2. 验证环境变量配置

确保.env文件中明确设置缓存相关变量,避免环境变量覆盖配置:

CACHE_STORE=redis
REDIS_CACHE_CONNECTION=cache
REDIS_CACHE_LOCK_CONNECTION=default

3. 清除配置缓存

Laravel会缓存配置文件,修改配置后必须清除缓存才能生效:

php artisan config:clear
php artisan cache:clear

4. 确认Redis连接可用性

测试Redis连接是否正常,避免因Redis连接失败导致系统 fallback 到数据库缓存:

php artisan redis:cli
# 进入Redis命令行后执行PING,返回PONG则连接正常

问题根源说明

错误栈中的Illuminate\Foundation\CacheBasedMaintenanceMode会使用默认缓存存储检查维护状态,而你的配置因冗余键、错误的锁连接名,或未清除配置缓存,导致系统未正确加载Redis缓存配置,转而使用了默认的数据库缓存驱动。

内容的提问来源于stack exchange,提问作者Simple Fellow

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:05:58