Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I clear the cache in laravel using command line?

I am using Redis to cache queries/routes in Laravel 5.2.

I have 3 environments running on the same web server i.e "production", "staging", and "development."

For each environment I set a different cache prefix value to allow me to link the cache to different environment.

In the config/cache.php file I changed the line

'prefix' => 'laravel',

To

'prefix' => ENV('CACHE_PREFIX', 'laravel'),

Then in my .env file, I added the prefix for each environment like this

For Dev

CACHE_PREFIX="LaravelDev"

For Staging

CACHE_PREFIX="LaravelStaging"

For Production

CACHE_PREFIX="LaravelProduction"

I know I can clear the cache from the command line like this

php artisan cache:clear

But the code above will clear the cache for all of my environments.

I only want to clear the cache for "LaravelDev" only and leave alone "LaravelStaging" and "LaravelProduction"

How can I clear the cache for a specific environment?

like image 559
Jaylen Avatar asked Jul 07 '16 22:07

Jaylen


People also ask

How do I manually delete Laravel cache?

The following is the syntax to clear cache in Laravel is given below: php artisan cache: clear. php artisan config: clear. php artisan cache: clear.

Where is Laravel cache file?

Laravel provides a unified API for various caching systems. The cache configuration is located at app/config/cache. php . In this file you may specify which cache driver you would like used by default throughout your application.

What does php artisan config clear does?

php artisan config:cache This command clears the cached config file as mentioned above and recaches the latest configurations into a single file again.


1 Answers

Instead of using CACHE_PREFIX you can use different redis databases. For ex: production => 1, staging => 2, development => 3. Use this links if you want to be a little bit more familiar with it:

  1. What's the Point of Multiple Redis Databases?
  2. List All Redis Databases

So, in your .env file for each environment (production/stage/dev) you need to define different REDIS_CACHE_DB env value.

Link to the line uses this variable https://github.com/laravel/laravel/blob/2a2522d8824c0852e30a7e3e07d46a543eb4b33d/config/database.php#L142 . Examples of .env:

.env.production

REDIS_CACHE_DB=1

.env.stage

REDIS_CACHE_DB=2

.env.development

REDIS_CACHE_DB=3

Don't forget to clear config cache after changing env variables: https://laravel.com/docs/7.x/configuration#configuration-caching

Hope this helps!

like image 85
Alexander Pekhota Avatar answered Oct 04 '22 02:10

Alexander Pekhota