Principais conclusões:
- O armazenamento em cache melhora drasticamente a velocidade da aplicação Laravel, armazenando dados frequentemente utilizados, reduzindo as consultas à base de dados e conduzindo a uma experiência de utilizador muito melhor.
- O sistema de cache flexível do Laravel suporta vários drivers, como file, Redis e Memcached, facilitando a adaptação a diferentes necessidades, sendo o Redis a melhor escolha para produção.
- O armazenamento em cache eficaz envolve a escolha do driver certo, o uso de métodos como Cache::remember() para recuperação/armazenamento eficiente de dados, a compreensão das estratégias de invalidação do cache e o monitoramento regular do desempenho para manter as coisas funcionando sem problemas.
Pretendes melhorar o desempenho da tua aplicação web Laravel? Se sim, então a integração da cache é uma obrigação.
Na era digital atual, a velocidade é tudo. Quer se trate de uma plataforma de comércio eletrónico ou de uma rede social, os utilizadores esperam que as aplicações carreguem rapidamente e respondam rapidamente.
É aí que entra o caching – uma ferramenta poderosa que pode ajudar a acelerar a tua aplicação web, reduzindo os tempos de carregamento e proporcionando uma melhor experiência ao utilizador.
Neste guia abrangente, vamos mergulhar profundamente no sistema de cache do Laravel e mostrar-te como integrá-lo na tua aplicação web. Abordarei os diferentes tipos de cache disponíveis no Laravel, incluindo cache de arquivo, banco de dados e Redis.
Se tens um site Laravel e estás à procura de o acelerar, estás com sorte. Neste artigo, vou demonstrar como usar vários métodos de cache no Laravel.
- O que é o cache do Laravel
- Porque é que o armazenamento em cache é importante
- Benefícios de usar o Laravel Cache
- Pré-requisito para instalar o Laravel Cache na tua aplicação na Cloudways
- Como integrar o Laravel Cache na tua aplicação
- Testando sem o cache do Laravel
- Teste e monitorização da cache do Laravel na aplicação Laravel
- Integrar Redis em Laravel com Cloudways
- Integrar o Varnish no Laravel com a Cloudways
- Métodos e utilização da cache do Laravel
- Melhores práticas para manter e atualizar o cache do Laravel
Neste artigo, vou demonstrar como usar vários métodos de cache no Laravel.
Configuração da cache do Laravel com 1 clique
Implementa a cache pré-optimizada (Redis, Memcached, OPcache) com:
Controladores de cache configurados automaticamente
Monitorização de acertos/erros da cache em tempo real
Suporte de marcação de cache sem falhas
O que é o cache do Laravel
O armazenamento em cache do Laravel é uma caraterística poderosa da estrutura PHP do Laravel que permite melhorar o desempenho e a eficiência das tuas aplicações. Com Laravel, podes configurar e alternar facilmente entre vários motores de cache sem escrever código.
Para configurar as opções de cache do Laravel, podes usar um único ficheiro de configuração que contém todas as definições necessárias para a tua aplicação. Além disso, o Laravel suporta todos os backends de cache populares, como Memcached e Redis, e fornece uma API unificada para interagir com diferentes frameworks de cache.
Um dos principais benefícios do cache do Laravel é o cache automático de modelos Blade, que são as visualizações usadas para renderizar páginas HTML no teu aplicativo. O Laravel analisa os modelos Blade em um formato PHP e HTML puro que pode ser armazenado em cache e reutilizado em várias solicitações, melhorando o desempenho geral do seu aplicativo.
Em geral, a cache do Laravel é uma caraterística essencial para otimizar o desempenho das tuas aplicações PHP.
Porque é que o armazenamento em cache é importante
O armazenamento em cache é um método de armazenamento temporário de dados num local mais rápido e mais facilmente acessível, reduzindo a necessidade de os recuperar constantemente de uma camada de armazenamento mais lenta. O armazenamento em cache é importante porque pode melhorar significativamente o desempenho da aplicação, reduzindo o tempo necessário para recuperar dados, o que resulta em tempos de resposta mais rápidos e numa melhor experiência do utilizador.
Isto é especialmente útil para aplicações que lidam com grandes quantidades de dados, como sites de comércio eletrónico, redes sociais e motores de busca.
Para além de melhorar o desempenho, o armazenamento em cache também pode ajudar a reduzir a carga do servidor. Ao recuperar dados da memória cache em vez da fonte original, a aplicação pode enviar menos pedidos para o servidor, reduzindo a carga de trabalho do servidor. Isto pode melhorar a estabilidade da aplicação, evitar o tempo de inatividade e reduzir os custos associados aos recursos do servidor, como a utilização da CPU e da memória.
Em geral, o armazenamento em cache é uma ferramenta poderosa para melhorar o desempenho e a eficiência das aplicações e é um componente essencial de muitos sítios Web e aplicações de elevado tráfego.
Benefícios de usar o Laravel Cache
A cache do Laravel é um poderoso sistema de cache que pode proporcionar vários benefícios à tua aplicação Laravel. Aqui estão alguns dos principais benefícios de usar o cache do Laravel:
Desempenho melhorado
A cache do Laravel melhora o desempenho da aplicação ao armazenar em cache os dados frequentemente acedidos, o que reduz o tempo de recuperação de dados da base de dados ou de APIs externas. Isto resulta em tempos de resposta mais rápidos da aplicação, redução da carga do servidor e melhor experiência do utilizador, especialmente durante períodos de elevado tráfego. O cache do Laravel também oferece flexibilidade para alternar facilmente entre os mecanismos de cache.
Redução da carga da base de dados
A colocação de dados em cache reduz a carga no servidor de base de dados, armazenando na cache os dados frequentemente acedidos. Isto evita a necessidade de recuperar os dados da base de dados repetidamente, o que reduz o número de consultas executadas e melhora o desempenho geral do sistema.
Flexibilidade
O cache do Laravel oferece flexibilidade ao permitir que você escolha entre vários drivers de cache, incluindo cache baseado em arquivo, baseado em banco de dados e Redis. Podes selecionar a estratégia de cache que melhor se adapta às necessidades da tua aplicação com base em factores como o tipo de dados, o volume e o tráfego esperado. O cache do Laravel também é fácil de configurar e gerenciar, simplificando a instalação e a manutenção.
Agora que já sabes o que é o caching em Laravel, a sua importância e os seus benefícios, vamos ver como podes implementar o caching em Laravel na tua aplicação
Pré-requisito para instalar o Laravel Cache na tua aplicação na Cloudways
Antes de poderes instalar o Laravel Cache na tua aplicação na Cloudways, existem alguns pré-requisitos que tens de cumprir.
Estes pré-requisitos são necessários para garantir que a tua aplicação corre bem e sem problemas depois de instalarmos o Laravel Cache.
Requisitos do servidor
Para efeitos deste tutorial, presumo que tenhas uma aplicação Laravel instalada num servidor Web.
A minha configuração é a seguinte:
- Laravel 11.x
- PHP 8.x
- MySQL
Para garantir que não me distraio com problemas ao nível do servidor, decidi implementar a minha aplicação Laravel na plataforma de alojamento gerido da Cloudways. Isso não apenas ajuda os usuários a hospedar projetos Laravel em etapas rápidas, mas também cuida de problemas no nível do servidor e oferece um ótimo devstack para aproveitar. Podes experimentar a Cloudways gratuitamente, inscrevendo-te rapidamente para uma conta.
Aplicações Laravel 300% mais rápidas com Caching
A nossa pilha garante-te:
Tempos de resposta em cache <50ms
Escalonamento automático para cargas de trabalho com muita cache
Recursos Redis/Memcached dedicados
Escolher o driver de cache do Laravel
O Laravel fornece uma API eficiente e eficaz para diferentes backends de cache. Podes encontrar a configuração da cache do Laravel na pasta config/cache.php .
Dentro do ficheiro, podes especificar qual o controlador de cache que pretendes utilizar por defeito. Alguns dos backends de cache mais populares do Laravel são:
- Memcached
- Redis
- Base de dados
- Ficheiro
- Matriz
Para alterar o driver de cache, basta abrir o arquivo .env e editar o arquivo Cache_Driver =.
Por que a Cloudways?
A Cloudways oferece uma gama de ferramentas otimizadas para simplificar o seu processo de desenvolvimento web. Com apenas um clique, é possível instalar o Laravel e outros pacotes, incluindo ferramentas de configuração de cache. Essa acessibilidade perfeita não apenas acelera a configuração do aplicativo da Web, mas também se alinha perfeitamente com a eficiência da hospedagem Laravel.
A Cloudways também oferece uma pilha otimizada de ferramentas, incluindo Nginx, Laravel Varnish, Memcached, acelerador Apache HTTP, PHP 8.x, MySQL e muitos outros, que são projetados para melhorar o desempenho do seu aplicativo. Estas ferramentas estão pré-configuradas, pelo que não tens de te preocupar em fazer quaisquer alterações.
Se precisar adicionar scripts avançados ao seu aplicativo, o Cloudways facilita a tarefa sem nenhuma configuração externa. Por exemplo, é possível adicionar o cache Redis ou o Elasticsearch ao seu aplicativo sem nenhum problema.
Para encurtar as coisas, Cloudways simplifica o processo de desenvolvimento web, permitindo que te concentres na construção da tua aplicação sem te preocupares com a configuração do servidor ou com as configurações.
Como integrar o Laravel Cache na tua aplicação
Para mostrar como o armazenamento em cache afeta o desempenho de um aplicativo da Web do Laravel, adicionei o cache do Laravel à plataforma de hospedagem gerenciada da Cloudways.
Primeiro instalei uma nova aplicação Laravel através do processo de instalação rápida com 1 clique.
- Para a implementação da aplicação, podes sempre escolher a infraestrutura de nuvem que desejas.
- Para este tutorial, lancei meu aplicativo no servidor em nuvem da DigitalOcean.

- Assim que o teu servidor gerido for lançado, vai a Detalhes de acesso.

- Agora, dirige-te para os servidores e utiliza as credenciais principais para acederes aos ficheiros Laravel instalados.

Criação do modelo de base de dados e migração
Após a instalação bem-sucedida, é hora de criar o modelo e a migração, colando o seguinte código:
php artisan marca:modelo Empregado-m

- Em seguida, abre a pasta de migração, o ficheiro de migração dos funcionários e cola o código mencionado abaixo.
função pública up() {
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string("emp_name");
$table->string("emp_details");
$table->timestamps();
});
}
- Depois de configurar os campos de migração com êxito, executa o comando de migração da seguinte forma:
PHP artisan migrate


Implementação do Database Seeding
Agora, o próximo passo é semear a tabela ‘articles’. Para fazer isso, abra o arquivo database/seeds/DatabaseSeeder.php e atualize o código Run():
<?php
usa o Illuminate\Database\Seeder;
usa Iluminate\Support\Facades\DB;
utiliza App\Employee;
utiliza Faker\Factory como Faker;
class DatabaseSeeder extends Seeder
{
/**
* Semeia a base de dados da aplicação.
*
* @return void
*/
função pública run()
{
$faker = Faker::create();
foreach(range(1, 30) as $index) {
Empregado::cria([
'emp_name' => $faker->sentence(5),
'emp_deatils' => $faker->paragraph(6)
]);
}
}
}
A biblioteca Faker do Laravel gera dados de demonstração falsos para efeitos de teste. Para já, estou a utilizar o método PHP range() para gerar 30 colunas de dados de demonstração. Basta copiares e colares o seguinte comando para colocares os dados nos campos.
Php artisan db:seed

Agora, abre o gestor da base de dados Cloudways, onde verás dezenas de tabelas preenchidas com dados de demonstração falsos.

Utilizar o controlador de base de dados
Agora, cria um controlador que processará os pedidos e o armazenamento em cache de acordo com os teus requisitos. Copia e cola o seguinte comando:
php artisan make:controller EmployeeController

Criar rota de base de dados
Agora, adiciona uma rota no ficheiro app/Http/routes.php que apontará para o método index do controlador:
Route::group(['prefix' => 'api'], function() {
Route::get('employee', 'EmployeeController@index');
});
Testando sem o cache do Laravel
Agora a aplicação está pronta, mas ainda não está integrada com o cache do Laravel. Por enquanto, vamos testar a aplicação sem o cache do Laravel usando o POSTMAN:
Vamos abrir o ficheiro Employeecontroller e colar o seguinte código na função index().
<?php
namespace App\Http\Controllers;
utiliza Illuminate\Http\Request;
utiliza App\Employee;
class EmployeeController extends Controller
{
//
função pública index() {
$employee= Employee::all();
//dd($employee);
devolve response()->json($employee);
}
}

Podes ver a captura de ecrã acima que mostra claramente que, sem a cache Laravel na aplicação, o tempo necessário para concluir o pedido é de aproximadamente 472 ms.
Teste e monitorização da cache do Laravel na aplicação Laravel
- Agora, vamos integrar a cache do Laravel e testar a aplicação novamente. Só tens de substituir o código da função index().
- Para este efeito, selecionei Cache = File e, como podes ver, o tempo necessário para completar os pedidos é de aproximadamente 284 ms, o que é bastante inferior ao último valor.

Integrar Redis em Laravel com Cloudways
- Como o Cloudways fornece a configuração do Redis com um clique, é hora de testar a solicitação com o Redis.

- Para integrar o Redis no Laravel , primeiro tens de executar o comando para instalar o predis na tua aplicação Laravel. Depois, vai ao ficheiro database.php e altera as definições de acordo com a configuração do Redis.
- Uma vez feito isso, abre o ficheiro config/cache.php e muda connection => cache para connection => default.


- Também podes usar o Laravel memcached alterando o ficheiro .env. Basta editar o tipo de ficheiro Redis para memcached no teu projeto Laravel e já está!
Também podes gostar: Aprende a Integrar o Memcached em PHP
Integrar o Varnish no Laravel com o Cloudways
O PHP Varnish é uma ferramenta de caching HTTP reverse proxy. Basicamente, significa que, em vez de um servidor web, o Varnish está autorizado a ouvir os pedidos HTTP depois de instalado.
Quando um pedido chega pela primeira vez, passa para o servidor Web como habitualmente. O servidor Web, depois de completar o seu trabalho, passa o pedido para o Varnish. O Varnish armazena em cache a resposta e envia-a de volta para os visitantes do site.
Assim, quando o pedido chega da próxima vez, é facilmente servido pelo Varnish com as respostas anteriores em cache.
Podes usar este pacote para integrar o Varnish no Laravel para melhorar o desempenho do site.
Como ativar o Varnish no Cloudways
Aqui está como podes ativar ou desativar o Varnish no servidor usando a Plataforma Cloudways.
- Faz login na sua plataforma Cloudways usando suas credenciais.
- Na barra de menu superior, abre Servidores.
- Em seguida, escolhe o servidor pretendido.

- Em Gestão de servidores, seleciona Gerir serviços.
- Em seguida, clica em Ativar na frente do Varnish para ativar o serviço. Da mesma forma, podes desativar o Varnish clicando em Desativar.

Métodos e utilização da cache do Laravel
Para ativar os serviços de cache do Laravel, utiliza primeiro o Illuminate\Contracts\Cache\Factory e o Illuminate\Contracts\Cache\Repository, uma vez que estes fornecem acesso aos serviços de cache do Laravel.
O contrato Factory dá acesso a todos os controladores de cache da tua aplicação. Entretanto, o contrato do repositório implementa o controlador de cache predefinido para a tua aplicação Web.
O Laravel Cache tem diferentes funções, tais como
- Cache::Coloca ()
- Cache::Obtém()
- Cache::Forever()
- Cache::Has()
Armazena a cache
Cache :: Put()i usa três parâmetros: chaves, valores e tempo em minutos para armazenar em cache todos os dados da aplicação. Para fins de teste, podes colar o seguinte código nas tuas rotas:
Cache ::put(key, value , 15);
Basicamente, a chave é um identificador único da cache que podes utilizar para a recuperar quando precisares dos dados. Também podes utilizar o método remember() para automatizar o processo de atualização da cache. Este método verifica primeiro a chave e, se a encontrar, devolve-a com o resultado verdadeiro. Caso contrário, cria uma nova chave com o valor. Verifica o seguinte código.
Cache::lembra-te('artigos', 15, function() {
devolve Article::all();
});
O valor dado, ’15’, é o número total de minutos a serem armazenados em cache. Ao usar isto, não tens de te preocupar em verificar a cache todas as vezes. Em vez disso, o Laravel fará isso por ti e recuperará a cache automaticamente todas as vezes.
Recupera a cache
Se guardaste os teus dados algures e gostarias de os recuperar, podes utilizar o método Get(). Basta copiar e colar o seguinte código no teu ficheiro de rotas:
Route::get('/', function()
{
devolve Cache::get( 'key' );
});
Incrementar / Decrementar valores
Para ajustar os valores dos itens inteiros da cache, podes utilizar os métodos incrementar e decrementar. Ambos os métodos aceitam um argumento opcional que indica o valor incrementado ou decrementado.
Cache::incrementa('chave');
Cache::incrementa('key', $amount);
Cache::decrementa('chave');
Cache::decrementa('key', $amount);
Cache de Existência:: Has()
Se pretenderes verificar se a chave existe ou não antes de recuperares os dados, utiliza Has() como definido abaixo:
Route::get('/', function()
{
Se (Cache::has('key')){
Cache::get('key');
} else {
Cache::put('key', $values, 20);
>;
Remove o valor da cache
Para limpar a cache do Laravel, basta usar a função forget(), como mostrado abaixo:
Cache::esquece('chave');
Também podes recuperar um valor da cache e apagá-lo imediatamente. Tecnicamente, podes chamar-lhe cache única.
$articles = Cache::pull('key');
Limpa a cache do Laravel
Também podes limpar a cache do Laravel mesmo antes de expirar a partir da consola utilizando:
php cache do artisan: limpa
Limpa a cache de rotas
Para limpar a cache de rotas da tua aplicação Laravel, emite o comando abaixo a partir do terminal.
php artisan route:cache
Limpa a cache de configuração
Para limpar a cache de configuração da tua aplicação Laravel, emite o comando abaixo a partir do terminal.
php artisan config:cache
Limpar ficheiros de visualização compilados
Para limpar os ficheiros de visualização compilados da tua aplicação Laravel, emite o comando abaixo a partir do terminal.
php artisan view:clear
Cache da base de dados
Ao usar o driver de cache do banco de dados do Laravel, precisarás configurar uma tabela para conter os itens de cache do Laravel. Encontrarás um exemplo de declaração de esquema para a tabela abaixo:
Schema::create('cache', function ($table) {
$table->string('key')->unique();
$table->text('value');
$table->integer('expiration');
});
Melhores práticas para manter e atualizar o cache do Laravel
O Laravel Cache é uma ferramenta poderosa para melhorar o desempenho de aplicações web. No entanto, como qualquer sistema de cache, requer manutenção e atualizações regulares para garantir um desempenho ideal.
Aqui estão algumas práticas recomendadas para manter e atualizar o Laravel Cache:
- Usa um driver de cache apropriado: O Laravel fornece vários drivers de cache, incluindo arquivo, banco de dados, Redis e Memcached. Escolhe o driver de cache apropriado com base nas necessidades do seu aplicativo e no ambiente do servidor. Por exemplo, o Redis e o Memcached são mais adequados para aplicativos de alto tráfego, enquanto o driver de cache de arquivo é adequado para aplicativos pequenos.
- Monitora o uso do cache: Monitora regularmente o uso do cache para identificar quaisquer problemas potenciais. Utiliza ferramentas como o Laravel Telescope ou o Cache Monitor para monitorizar os acessos e as falhas da cache, o tamanho da cache e o tempo de vida da cache.
- Define o tempo de vida adequado da cache: Define um tempo de vida de cache adequado com base nas necessidades da sua aplicação. Um tempo de vida de cache mais curto pode ajudar a garantir que os dados em cache estejam sempre atualizados, mas também pode aumentar a carga no servidor. Um tempo de vida de cache mais longo pode reduzir a carga do servidor, mas pode resultar na apresentação de dados obsoletos.
- Limpa a cache regularmente: Limpa regularmente o cache para evitar que ele se torne muito grande e para garantir que dados obsoletos não sejam servidos. Use o comando Artisan embutido no Laravel para limpar o cache manualmente ou configure um trabalho cron para limpar o cache automaticamente.
- Utiliza etiquetas de cache: Utiliza etiquetas de cache para agrupar itens em cache relacionados. Isto permite-te limpar facilmente um grupo de itens em cache em vez de limpares toda a cache.
- Atualiza os pacotes do Laravel e do cache regularmente: Mantém a sua aplicação Laravel e os pacotes de cache actualizados com os últimos patches de segurança e correcções de erros. Isso garante que seu aplicativo permaneça seguro e tenha um desempenho ideal
Lógica de cache de código, não configurações de servidor
Concentra-te na fachada da cache do Laravel enquanto tratamos do assunto:
Aprovisionamento do servidor de cache
Aplicação de patches de segurança
Automação diária da descarga da cache
Palavras finais
Neste blog, eu cubro o tutorial passo-a-passo que explica como implementar o cache em uma aplicação web Laravel e melhorar o seu desempenho. A cache do Laravel ajuda a melhorar a velocidade do teu site e aumenta tremendamente o seu desempenho.
Abordámos a integração completa da cache no Laravel e demonstrámos como utilizar outras ferramentas como o Laravel memcached, etc.
No geral, o blogue é um guia completo para os programadores que pretendem melhorar o desempenho da sua aplicação Web Laravel através da implementação de cache.
P: Como redefinir a cache do Laravel?
R: Para limpar a cache nas aplicações Laravel, abre o teu terminal e escreve o seguinte comando:
$ php cache artisan:clear Para limpar a cache de rotas da tua aplicação Laravel, executa o seguinte comando: $ php artisan route:clear
Da mesma forma, para limpar a cache de configuração da aplicação Laravel, utiliza o seguinte comando:
$ php artisan config:clear
P: Como resolver o erro “Laravel failed to clear cache”?
R: Este erro aparece principalmente quando o caminho dos dados não existe no diretório storage/framework/cache/data. Para resolver este erro, basta criar manualmente um diretório de dados sob o diretório storage/framework/cache.
P: Como desativar a cache do Laravel?
R: Para desativar a cache do Laravel, basta usares o seguinte comando no teu ficheiro .env:
CACHE_EXPIRE=-1
P: O Laravel armazena consultas em cache?
R: Sim, podes armazenar consultas em cache no Laravel usando uma chamada de método encadeado muito simples:
$users = DB::table('users')
->orderBy('latest_activity', 'desc')
-> toma(10)
->lembra-te(60)
->get();
P: O que é a cache do Laravel?
A) O cache do Laravel é um sistema que armazena dados temporariamente para acelerar o desempenho de uma aplicação, reduzindo a necessidade de processamento repetido de dados ou consultas ao banco de dados. O Laravel fornece um sistema de cache fácil de usar que suporta vários backends como Redis, Memcached e cache baseado em banco de dados.
P: O Laravel faz cache por padrão?
A) Sim, o Laravel faz cache por padrão. Usa o driver de cache de arquivo para fazer cache, armazenando dados em cache no diretório storage/framework/cache/data. Podes configurar o Laravel para usar diferentes drivers de cache, como Redis ou Memcached, com base nas tuas necessidades, modificando a definição CACHE_DRIVER no ficheiro .env.
P: Onde é armazenada a cache do Laravel?
A) O Laravel armazena seu cache em vários locais, dependendo do driver de cache configurado no arquivo .env.
- Cache de ficheiros: Armazenado em storage/framework/cache/data.
- Cache da base de dados: Armazenado numa tabela de cache na base de dados.
- Redis/Memcached: Armazenados nos seus respectivos servidores.
Inshal Ali
Inshal é um profissional de marketing de conteúdos na Cloudways. Com formação em informática, competências de conteúdo e muita criatividade, ajuda as empresas a chegar ao céu e a ir mais além através de conteúdos que falam a língua dos seus clientes. Para além do trabalho, podes vê-lo sobretudo em alguns jogos online ou num campo de futebol.