Система подій кешу в Laravel дозволяє детально моніторити операції кешування у вашій аплікації. Ці події надають корисну інформацію про продуктивність кешу та його використання.
Laravel генерує специфічні події для різних дій з кешем:
use Illuminate\Cache\Events\{
CacheHit,
CacheMissed,
KeyForgotten,
KeyWritten
};
Ви можете створювати прослуховувачі для цих подій, щоб збирати дані про продуктивність або виконувати додаткові дії залежно від поведінки кешу.
use Illuminate\Support\Facades\Event;
Event::listen(function (CacheHit $event) {
Log::info("Cache hit for key: {$event->key}");
});
Event::listen(function (CacheMissed $event) {
Log::info("Cache miss for key: {$event->key}");
});
Ось як виглядає всебічна система аналітики кешу, що відстежує всі операції з кешем:
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\DB;
class CacheAnalyticsService
{
public function registerListeners()
{
Event::listen(function (CacheHit $event) {
$this->trackCacheOperation('hit', [
'cache_key' => $event->key,
'store' => $event->store ?? 'default',
'timestamp' => now()
]);
});
Event::listen(function (CacheMissed $event) {
$this->trackCacheOperation('miss', [
'cache_key' => $event->key,
'store' => $event->store ?? 'default',
'timestamp' => now()
]);
});
Event::listen(function (KeyWritten $event) {
$this->trackCacheOperation('write', [
'cache_key' => $event->key,
'expiry_seconds' => $event->seconds,
'store' => $event->store ?? 'default',
'timestamp' => now()
]);
});
Event::listen(function (KeyForgotten $event) {
$this->trackCacheOperation('delete', [
'cache_key' => $event->key,
'store' => $event->store ?? 'default',
'timestamp' => now()
]);
});
}
private function trackCacheOperation(string $operation, array $metadata)
{
DB::table('cache_analytics')->insert([
'operation_type' => $operation,
'cache_key' => $metadata['cache_key'],
'store_name' => $metadata['store'],
'expiry_time' => $metadata['expiry_seconds'] ?? null,
'recorded_at' => $metadata['timestamp']
]);
}
}
Слід врахувати, що моніторинг подій може вплинути на продуктивність. Ви можете вимкнути його для конкретного кеш-зберігання у вашій конфігурації за потреби
Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту
Досліджуйте потужний пакет Intervention Image для PHP, який виводить редагування зображень на новий рівень з оновленою версією 3. Чи готові ви дізнатися, які нові можливості та функції чекають на вас у цьому інструменті
Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!