Cache::get() reaches a Repository wrapping one store from config/cache.php. CACHE_STORE picks the default (database, using the cache and cache_locks tables of the default migrations), and Cache::store('file') reaches any other. Keys get the laravel-cache- prefix. Most stores support atomic locks, but only redis, memcached and the test stores array and null support tags, one reason Redis 2,763 is the usual production choice. For Redis, install the recommended phpredis 10,226 extension (sudo apt install php8.5-redis) or run composer require predis/predis with REDIS_CLIENT=predis, then set CACHE_STORE=redis.
cache:clear flushes the cache store only; the configuration cache (Config and Route Caching) is a separate file:
php artisan config:cache -q; php artisan cache:clear -q; ls bootstrap/cache | xargs
php artisan config:clear -q; ls bootstrap/cache | xargsconfig.php packages.php services.php packages.php services.php
On Redis, cache:clear runs FLUSHDB, which ignores the prefix: every application sharing that database loses its keys. Give each its own REDIS_CACHE_DB, or use cache:forget shop:banner.