Відстеження активності кешу за допомогою подій у Laravel

1
Перекладено ШІ
Оригінал: Laravel News
Оновлено: 17 грудня, 2025
Ви коли-небудь задумувались, як ефективно відстежувати операції кешування у вашій програмі на Laravel? Ми розглянемо, як система подій кешу може допомогти вам отримати цінні дані про продуктивність та використовувати їх для покращення вашого додатку. Читайте далі, щоб дізнатися більше!

Система подій кешу в 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']
        ]);
    }
}

Слід врахувати, що моніторинг подій може вплинути на продуктивність. Ви можете вимкнути його для конкретного кеш-зберігання у вашій конфігурації за потреби

Популярні

Logomark Logotype

Журнал аудиту в Laravel

Хочете забезпечити повну прозорість у своїх Laravel-додатках? Пакет Laravel Audit Log допоможе вам детально відстежувати всі зміни моделей Eloquent та відповідати вимогам регуляторів. Читайте далі, щоб дізнатися, як цей потужний інструмент може підвищити надійність вашого проєкту

Logomark Logotype

Використання штучного інтелекту для управління перекладами в Laravel

Досліджуйте нові можливості локалізації вашого Laravel-додатку з пакунками, які використовують штучний інтелект, такими як ChatGPT та Claude. Які рішення можуть спростити ваш процес перекладу та зробити його більш точним? Читайте далі, щоб дізнатися більше!

Logomark Logotype

Використання повнотекстового пошуку в Laravel

Laravel пропонує потужні можливості повнотекстового пошуку за допомогою методів whereFullText та orWhereFullText, що дозволяють здійснювати складні запити до бази даних. Дізнайтеся, як реалізувати ефективний пошук для вашого блогу чи системи управління контентом