Chuyển đến nội dung chính

Bài 16: Caching, Sessions & Performance

Cache drivers (Redis, Memcached, file). Cache tags, atomic locks. Session management. N+1 query prevention, query monitoring. Laravel Debugbar, Telescope. Octane (Swoole/FrankenPHP).

💻 Lập trình — Bài 16 Bài 16: Caching, Sessions & Performance

Laravel: Từ Cơ bản đến Nâng cao

Phần 4: Advanced Features

xdev.asia

1. Caching

use Illuminate\Support\Facades\Cache;

// Basic
Cache::put('key', $value, now()->addHours(1));
$value = Cache::get('key', 'default');
Cache::forget('key');

// Remember pattern
$products = Cache::remember('products:featured', 3600, function () {
    return Product::with('category')->where('is_featured', true)->get();
});

// Cache tags (Redis/Memcached)
Cache::tags(['products'])->put('products:all', $products, 3600);
Cache::tags(['products'])->flush();

// Atomic locks
$lock = Cache::lock('processing-order-' . $orderId, 10);
if ($lock->get()) {
    try {
        // Process order
    } finally {
        $lock->release();
    }
}

2. N+1 Query Prevention

// AppServiceProvider
use Illuminate\Database\Eloquent\Model;

Model::preventLazyLoading(!app()->isProduction());
Model::preventSilentlyDiscardingAttributes(!app()->isProduction());

// Eager load
Product::with(['category', 'tags'])->paginate(20);

// Subquery
Product::addSelect([
    'latest_review' => Review::select('body')
        ->whereColumn('product_id', 'products.id')
        ->latest()
        ->limit(1),
])->get();

3. Laravel Telescope & Debugbar

composer require laravel/telescope --dev
php artisan telescope:install

composer require barryvdh/laravel-debugbar --dev

4. Laravel Octane

composer require laravel/octane
php artisan octane:install --server=frankenphp
php artisan octane:start --workers=4
// Concurrent tasks
use Laravel\Octane\Facades\Octane;

[$products, $categories] = Octane::concurrently([
    fn () => Product::all(),
    fn () => Category::all(),
]);

5. Production Optimization

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
php artisan icons:cache
php artisan optimize

Bài tiếp theo: Livewire — Full-Stack Components.