Redis 连接 [缓存] 未配置 laravel 错误

Posted

技术标签:

【中文标题】Redis 连接 [缓存] 未配置 laravel 错误【英文标题】:Redis connection [cache] not configured error with laravel 【发布时间】:2019-04-22 19:53:42 【问题描述】:

我正在尝试在 laravel 中使用 redis 进行缓存。

我已经在本地安装了 redis,并且我知道它正在工作,因为我能够运行水平队列和工作程序。

我在做的时候也得到了回应

redis-cli PING

但是当我尝试这段代码时

$user = Cache::get('User:' .$Id , function ($Id) 
    return User::where('id', '=', $Id)->firstOrFail();
);

我得到了错误

 Redis connection [cache] not configured.

我已将我的 .env 更改为具有以下条目

CACHE_DRIVER=redis

【问题讨论】:

【参考方案1】:

你可以像这样在config/database.php中设置redis配置

'redis' => [

        'client' => 'predis',

        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', 'footbar'), //if password otherwise set null 
            'port' => env('REDIS_PORT', 6379),
            'database' => 0,
        ],

    ],

.env 文件中的其他设置

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

然后运行 ​​artisan 命令

php artisan config:cache
php artisan config:clear 

【讨论】:

【参考方案2】:

cache.php找到这个

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

并将其更改为:

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

【讨论】:

【参考方案3】:

第 1 步:配置:config/database.php 添加以下数组

'redis' => array(
'cluster' => false,
'default' => array(
'host'     => env('REDIS_HOST', 'localhost'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => env(‘REDIS_DATABASE',0),
),
),

第 2 步:配置:.env 文件

CACHE_DRIVER=redis
REDIS_DATABASE=0 

第 3 步:配置/cache.php

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

【讨论】:

【参考方案4】:

除其他答案外,如果您使用 redis 作为队列驱动程序,请验证 queue.phpconfiguration 文件中的 redis 连接是否设置为“默认”。

【讨论】:

以上是关于Redis 连接 [缓存] 未配置 laravel 错误的主要内容,如果未能解决你的问题,请参考以下文章

Laravel系列4.7连接redis以及缓存应用

Laravel 缓存操作

Laravel 缓存操作

laravel5.5缓存系统

laravel Redis缓存

laravel 清理缓存技巧和创建软连接