Cache
O módulo `Cache` no Lithe oferece uma maneira eficiente de armazenar e recuperar dados frequentemente acessados, melhorando o desempenho do aplicativo ao evitar operações repetidas em dados que não mudam frequentemente.
Instalação
Para instalar o pacote lithemod/cache
, execute o seguinte comando no diretório do seu projeto:
composer require lithemod/cache
Para mais detalhes, você pode verificar o código-fonte em github.com/lithemod/cache.
Armazenando e Recuperando Dados em Cache
Armazenando Dados no Cache
Para armazenar dados no cache, utilize o método add
. Este método requer uma chave única, os dados a serem armazenados, um tempo de expiração opcional (em segundos, o padrão é 3600 segundos) e um formato de serialização opcional.
Você pode armazenar dados em dois formatos:
- JSON: Use este formato para estruturas de dados simples, como arrays ou objetos.
- Serialized: Use este formato para tipos de dados complexos, que podem ser armazenados e recuperados em seu estado original.
Veja como armazenar dados:
use Lithe\Support\Cache;
$app->post('/store-data', function ($req, $res) {
$data = $req->input('data'); // Supondo que $data seja um array
$cacheKey = 'data_key';
// Armazenando como JSON
Cache::add($cacheKey, $data, 3600, 'json');
// Ou armazenando como serializado
// Cache::add($cacheKey, $data, 3600, 'serialize');
$res->send('Dados armazenados em cache com sucesso! 🎉');
});
Recuperando Dados do Cache
Para recuperar dados armazenados em cache, use o método get
. Este método retorna os dados armazenados ou null
se os dados não forem encontrados no cache.
use Lithe\Support\Cache;
$app->get('/get-data', function ($req, $res) {
$cacheKey = 'data_key';
$data = Cache::get($cacheKey) ?? 'Dados não encontrados no cache. 😞';
$res->json(['data' => $data]);
});
Invalidando Itens do Cache
Você pode remover itens específicos do cache usando o método invalidate
. Este método pode aceitar uma única chave de cache ou um array de chaves, permitindo a invalidação em massa.
use Lithe\Support\Cache;
// Invalidando um item
$app->post('/invalidate-cache', function ($req, $res) {
$cacheKey = 'data_key';
Cache::invalidate($cacheKey);
$res->send('Cache invalidado com sucesso! 🗑️');
});
// Invalidando múltiplos itens
$app->post('/invalidate-multiple-cache', function ($req, $res) {
$cacheKeys = ['data_key', 'another_key'];
Cache::invalidate($cacheKeys);
$res->send('Múltiplos itens do cache invalidado com sucesso! 🗑️');
});
Recuperando Dados ou Executando um Callback
O método remember
permite que você recupere dados do cache ou execute uma função de callback para gerar os dados caso não sejam encontrados no cache.
use Lithe\Support\Cache;
$app->get('/settings', function ($req, $res) {
$settings = Cache::remember('app_settings', function() {
return ['theme' => 'dark', 'language' => 'pt'];
});
$res->json($settings);
});
Considerações Finais
Com o módulo Cache
, você pode otimizar o desempenho da sua aplicação gerenciando dados em cache de forma eficaz. Você pode escolher entre os formatos JSON e serializado para armazenar dados com base nas suas necessidades. Certifique-se de definir uma estratégia de cache adequada com base nas necessidades específicas da sua aplicação e nos padrões de acesso aos dados. Boa codificação! 🚀