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.php
configuration 文件中的 redis 连接是否设置为“默认”。
【讨论】:
以上是关于Redis 连接 [缓存] 未配置 laravel 错误的主要内容,如果未能解决你的问题,请参考以下文章