Directorio de artículos
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ónphp 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、dynamodb
usted 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}");