как избежать сбоев кэша (https://www.doctrine -project.org / projects / doctrine-orm / en / 2.6 / reference / caching.html # cache-slams )? этот вопрос не о доктрине, а о кеше в целом
Мне нужно что-то вроде этого
//pseudo code
// $cacheKey = 'randomCacheKey'.
if(Cache::has($cacheKey)) {
return Cache::get($cacheKey);
}
//do some work
$valueToCache = $this->someComplexTask();
Cache::set($cacheKey, $valueToCache);
return $valueToCache;
вопрос в том, как мне это сделать, чтобы избежать взлома кеша? Например, если у меня 200 параллельных запросов, и все они заметят, что кеша нет, все они попытаются записать в тот же ключ, что приведет к скачку в запросах cpu / memory / db и т. Д., Так что мне нужнотолько один из них записывает в этот кеш, а все остальные должны его ждать. Как мне это сделать?
этот, вероятно, как-то связан с атомарными блокировками, но мне не ясно, как мне его использовать, документация не для меня (это слишком много "привет, мир")-подобный пример).