配置
REDIS_HOST=redis
REDIS_PASSWORD=123456
REDIS_PORT=6379
# 指定缓存存放库为DB1
REDIS_CACHE_DB=1
打开 config/database.php
, redis
数组新增项
'cache' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_CACHE_DB', '1'), // 指定数据库为1号库,避免与default库冲突
],
连接Redis
use Illuminate\Support\Facades\Redis;
$redis = Redis::connection('cache')->client();
// 获取要存放的数据
$categoryTree = Category::all();
// 每次读取缓存时,判断缓存是否存在,不存在则建立缓存存
$key = 'category_tree';
if ($redis->exists($key)){
try{
$redis->set($key,json_encode($categoryTree,JSON_UNESCAPED_UNICODE));
}catch(RedisException $e){
abort(422,'数据写入缓存失败 [ '.$e->getMessage().']' );
}
}
// 读取缓存
try{
$categories = json_decode($redis->get($key),true);
}catch(Exception $e){
abort(422,'获取缓存失败 [ '.$e->getMessage().' ]');
}
var_dump($ategories);