配置

  1. REDIS_HOST=redis
  2. REDIS_PASSWORD=123456
  3. REDIS_PORT=6379
  4. # 指定缓存存放库为DB1
  5. 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);