Senior: питання на співбесіді з теми «Caching»
Найпопулярніші питання з реальних Laravel/PHP співбесід для всіх рівнів
Всі теми
API
Authentication
Caching
Database
Debugging
DevOps
Livewire
Performance
PHP
Queues
Search
Service Container
Testing
Архітектура
Безпека
Масштабування
1 питання
Cache Stampede (dogpile) - коли популярний ключ кешу протермінувався, і сотні одночасних запитів кидаються перераховувати важке значення одночасно, перевантажуючи БД.
Рішення в Laravel:
// блокування: лише один процес перераховує, інші чекають результат
$value = Cache::lock('report:lock', 10)->block(5, function () {
return Cache::remember('report', 3600, fn () => $this->heavyReport());
});
Інші стратегії:
Cache::flexible()(stale-while-revalidate) - віддає «протухле» значення, поки одне фонове оновлення його перераховує.- Розмазування TTL (jitter), щоб ключі не протухали одночасно.
- Прогрів кешу (cache warming) за розкладом, а не за запитом користувача.