Cache é uma técnica usada para armazenar temporariamente dados frequentemente acessados em um local de memória mais rápido, como o cache do servidor, evitando assim a necessidade de processar esses dados repetidamente no banco de dados ou em outras fontes de armazenamento. O cache pode ser aplicado em várias partes do seu aplicativo para melhorar o desempenho geral.
Configuração do Cache em Laravel:
O Laravel possui uma configuração simples para o cache que pode ser ajustada no arquivo .env
do seu projeto. O Laravel suporta vários drivers de cache, como arquivo, banco de dados, Memcached, Redis, e mais. Por padrão, o Laravel utiliza o driver file
, que armazena os dados em arquivos no disco.
Para configurar o cache, verifique se o valor CACHE_DRIVER
está definido em seu arquivo .env
. Caso não esteja definido, adicione ou atualize-o para o driver de sua escolha:
CACHE_DRIVER=file
Você também pode configurar outras opções de cache, como a duração padrão de cache ou o local de armazenamento dos arquivos de cache. Para personalizar as configurações, você pode editar o arquivo config/cache.php
no seu projeto Laravel.
Utilização do Cache em Laravel:
O Laravel fornece uma API concisa e poderosa para utilizar o cache em seu aplicativo. A seguir, estão alguns exemplos de como você pode utilizar o cache em diferentes cenários:
1. Cache de Dados Simples:
Você pode armazenar dados simples no cache e recuperá-los posteriormente usando chaves únicas:
// Armazenar dados no cache com uma chave e duração de 1 hora
Cache::put('chave_cache', $data, now()->addHour());
// Recuperar dados do cache pela chave
$data = Cache::get('chave_cache');
2. Cache de Consultas de Banco de Dados:
Você pode armazenar resultados de consultas de banco de dados em cache para evitar consultas repetidas:https://laravel.com/docs/10.x/cache
$users = Cache::remember('todos_os_usuarios', now()->addHour(), function () {
return DB::table('users')->get();
});
O exemplo acima armazena os resultados da consulta SELECT * FROM users
em cache com a chave 'todos_os_usuarios'
por uma hora. Se os dados estiverem no cache, eles serão recuperados diretamente do cache; caso contrário, a consulta será executada e os resultados serão armazenados em cache para futuras solicitações.
3. Invalidação do Cache:
Você pode invalidar (limpar) o cache manualmente quando os dados armazenados não forem mais válidos:
// Remover um item específico do cache
Cache::forget('chave_cache');
// Limpar todos os dados em cache
Cache::flush();
4. Cache em Rotas e Views:
Você pode aplicar cache em rotas e views para melhorar o desempenho de páginas que são caras de processar: