Каталог статей
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}");