[Laravel Cache] Настроить кеш хранилища Redis, легко понять и освоить один раз

1. Настроить cache / config / cache.php

Что такое драйвер кеша конфигурации? (Т.е. CACHE_DRIVER = "ключ в магазинах")

Настроить определенные модули в магазинах

Настройте префикс значения ключа кеша (например, CACHE_PREFIX)

return [
'default' => env('CACHE_DRIVER', 'file'),

'stores' => [
		....省略内容....
        'redis' => [
            'driver' => 'redis',
            'connection' => 'cache',  # 对应 config/database.php 中的redis.cache 内容
        ],
		....省略内容....

    ],
 # 配置前缀地址
'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),
];

2. Настроить redis, то есть настроить config / database.php

'redis' => [

    ....省略内容....
    
	# 配置此项,连接redis 服务器
    'cache' => [   
        'url' => env('REDIS_URL'),
        'host' => env('REDIS_HOST', '127.0.0.1'),
        'password' => env('REDIS_PASSWORD', null),
        'port' => env('REDIS_PORT', 6379),
        'database' => env('REDIS_CACHE_DB', 1),  # redis 数据库 1   redis-cli > select 1
    ],

],

До сих пор, согласно вышеизложенному, мы знаем, что кеш, использующий хранимую процедуру после redis, конфигурация среды соответствует элементу конфигурации .env, записанному при
выполнении, php artisan config:cache --env=<环境名称>может

3. Используйте кеш

use Illuminate\Support\Facades\Cache;

# 简单使用
# 添加
  # 返回值:Boolean
  # 只会在缓存项不存在的情况下添加缓存项到缓存,如果缓存项被添加到缓存返回true,否则,返回false
  # 60 为过期时间 60秒
  Cache::add('key', 'value', 60); # 60秒
  
  # 缓存中存储缓存项的时候,你需要指定数据被缓存的时间(分钟数)
  Cache::put('key', 'value', 5); # 5分钟
  
  # 持久化
  Cache::forever('key', 'value');

# 获取
$value = Cache::get('key');

4. Расширенная операция, блокировка

Примечание: только redis、memcached、dynamodbвы можете использовать операцию блокировки

if (Cache::has($cacheKey)) {
    
    
	$res = Cache::get($cacheKey);
    Log::info("{
      
      $cacheKey} is existed!!");
    return $res;
}
$res = Cache::lock($cacheKey)->get(function () use ($params) {
    
    
    // 获取无限期锁并自动释放...
    # 执行业务逻辑
    return self::sendGetRequest($params);
});
$isAddSuccess = Cache::add($cacheKey, $res, 1 * 60);
Log::info("{
      
      $cacheKey}{
      
      $isAddSuccess}");

рекомендация

отblog.csdn.net/qq_22227087/article/details/110134251