[Laravel Cache] Configure la caché de almacenamiento de redis, fácil de entender y dominar una vez

1. Configure el caché / config / cache.php

¿Qué es el controlador de caché de configuración? (Es decir, CACHE_DRIVER = "clave en tiendas")

Configurar módulos específicos en tiendas

Configure el prefijo del valor de la clave de caché (es decir, 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. Configure redis, es decir, configure 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
    ],

],

Hasta ahora, de acuerdo con lo anterior, sabemos que la caché usando un procedimiento almacenado después de redis, la configuración del entorno corresponde al elemento de configuración .env escrito en
ejecución php artisan config:cache --env=<环境名称>puede

3. Usar caché

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. Operación avanzada, bloqueo

Nota: solo redis、memcached、dynamodbusted puede utilizar la operación de bloqueo

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}");

Supongo que te gusta

Origin blog.csdn.net/qq_22227087/article/details/110134251
Recomendado
Clasificación