What is the difference between Session and Cache in Laravel?
Session data is per-user and persists across multiple HTTP requests for the duration of a user's visit. It is identified by a session ID stored in a cookie.
// Store
session(['cart' => $items]);
// or
$request->session()->put('cart', $items);
// Retrieve
$cart = session('cart');
// Flash (available only for next request)
session()->flash('success', 'Order placed!');
// Remove
session()->forget('cart');
Cache data is application-wide and shared across all users. It is used to store expensive computation results or query results that rarely change.
// Store for 1 hour
Cache::put('settings', $settings, now()->addHour());
// Retrieve or compute
$settings = Cache::remember('settings', 3600, fn () => Setting::all());
// Remove
Cache::forget('settings');
| Session | Cache | |
|---|---|---|
| Scope | Per user | Application-wide |
| Use case | Auth, cart, flash messages | Query results, config |
| Drivers | file, cookie, database, redis | file, redis, memcached, array |
All Comments