Cache configuration helps your Laravel app store data temporarily to make it faster. It saves time by reusing data instead of creating it again.
Cache configuration in Laravel
return [ 'default' => env('CACHE_DRIVER', 'file'), 'stores' => [ 'file' => [ 'driver' => 'file', 'path' => storage_path('framework/cache/data'), ], 'redis' => [ 'driver' => 'redis', 'connection' => 'cache', ], // other cache stores... ], 'prefix' => env('CACHE_PREFIX', 'laravel_cache'), ];
The default key sets which cache driver Laravel uses by default.
You can configure multiple cache stores like file, redis, database, etc., inside the stores array.
.env file.CACHE_DRIVER=file CACHE_PREFIX=myapp_cache
'default' => env('CACHE_DRIVER', 'redis'), 'stores' => [ 'redis' => [ 'driver' => 'redis', 'connection' => 'cache', ], ],
'stores' => [ 'database' => [ 'driver' => 'database', 'table' => 'cache', 'connection' => null, ], ],
This example stores a greeting message in the cache for 10 minutes and then retrieves it. If the cache is empty, it shows a default message.
<?php use Illuminate\Support\Facades\Cache; // Store a value in cache for 10 minutes Cache::put('greeting', 'Hello, friend!', 600); // Retrieve the cached value $value = Cache::get('greeting', 'Default greeting'); // Output the cached value echo $value;
Remember to clear cache after changing configuration using php artisan cache:clear.
Use environment variables to easily switch cache drivers between local and production.
File cache stores data in storage folder; Redis cache requires Redis server setup.
Cache configuration controls how Laravel stores temporary data to speed up your app.
You can choose different cache drivers like file, Redis, or database.
Set cache duration and prefix to organize cached data safely.
Practice
Solution
Step 1: Understand cache role in Laravel
Cache stores temporary data to reduce repeated work and speed up the app.Step 2: Identify cache configuration purpose
Cache configuration sets how and where this temporary data is saved.Final Answer:
To control how temporary data is stored to speed up the application -> Option CQuick Check:
Cache configuration = speed up app by storing temporary data [OK]
- Confusing cache with database setup
- Mixing cache with authentication or email settings
- Thinking cache stores permanent data
config/cache.php file?Solution
Step 1: Check Laravel cache config syntax
The default cache driver is set with the key 'default' using env() helper.Step 2: Match correct syntax
'default' => env('CACHE_DRIVER', 'file'), uses 'default' => env('CACHE_DRIVER', 'file'), which is correct Laravel pattern.Final Answer:
'default' => env('CACHE_DRIVER', 'file'), -> Option BQuick Check:
Default cache driver set with 'default' key [OK]
- Using wrong key names like 'driver' or 'cache'
- Not using env() helper for flexibility
- Setting keys that don't exist in Laravel config
config/cache.php:
'stores' => [
'file' => [
'driver' => 'file',
'path' => storage_path('framework/cache/data'),
],
'redis' => [
'driver' => 'redis',
'connection' => 'cache',
],
],
'default' => 'redis',
What cache store will Laravel use by default?Solution
Step 1: Identify the 'default' cache driver
The config sets 'default' => 'redis', so Redis is the default store.Step 2: Confirm Redis store exists
The 'stores' array includes a 'redis' store with proper driver and connection.Final Answer:
redis -> Option DQuick Check:
Default cache store = redis [OK]
- Assuming 'file' is default because it appears first
- Ignoring the 'default' key value
- Confusing store names with driver names
.env but Laravel still uses the file cache. What is the most likely cause?Solution
Step 1: Understand Laravel config caching
Laravel caches config files for performance, so changes in .env may not apply immediately.Step 2: Identify how to apply .env changes
Runningphp artisan config:clearclears cached config, allowing new .env values to take effect.Final Answer:
You forgot to clear the config cache withphp artisan config:clear-> Option AQuick Check:
Clear config cache to apply .env changes [OK]
- Assuming Redis must be installed locally for Laravel to use it
- Thinking file driver is always default
- Restarting server without clearing config cache
config/cache.php settings correctly achieves this?Solution
Step 1: Set default driver to database
The 'default' key must be 'database' to use the database cache driver.Step 2: Set a custom prefix and database store
The 'prefix' key should be 'myapp_cache_' to avoid conflicts, and the 'stores' array must define 'database' with correct driver and table.Final Answer:
'default' => 'database', 'prefix' => 'myapp_cache_', 'stores' => ['database' => ['driver' => 'database', 'table' => 'cache']], -> Option AQuick Check:
Default driver + prefix + database store set correctly [OK]
- Not matching default driver with store name
- Using wrong prefix format or missing prefix
- Setting default to wrong driver
Ready to prove it?
Pass the test and this pattern moves unknown
