Cache
A classe `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.
Armazenando e Recuperando Dados em Cache
Armazenando Dados em Cache
Para armazenar dados em cache, use o método put
. Este método recebe uma chave para identificar os dados, os dados a serem armazenados, o tempo de expiração em segundos (padrão é 3600 segundos ou 1 hora) e o formato de serialização (opcional: 'serialize'
, 'json'
ou 'yaml'
, padrão é 'serialize'
).
use Lithe\Support\Cache;
post('/store-data', function ($req, $res) {
$data = $req->input('data');
$cacheKey = 'data_key';
$expiry = 3600; // Tempo de expiração em segundos (1 hora)
$serializationFormat = 'json'; // Formato de serialização
Cache::put($cacheKey, $data, $expiry, $serializationFormat);
$res->send('Dados armazenados em cache.');
});
Recuperando Dados em Cache
Para recuperar dados do cache, use o método get
. Ele recebe a chave que identifica os dados e retorna os dados armazenados ou null
se não encontrados ou expirados.
use Lithe\Support\Cache;
get('/get-data', function ($req, $res) {
$cacheKey = 'data_key';
$data = Cache::get($cacheKey);
if (!$data) {
$data = 'Dados não encontrados no cache.';
}
$res->json(['data' => $data]);
});
Invalidando Itens em Cache
Para remover um item do cache, use o método invalidate
. Ele recebe a chave que identifica o item a ser removido.
use Lithe\Support\Cache;
post('/invalidate-cache', function ($req, $res) {
$cacheKey = 'data_key';
Cache::invalidate($cacheKey);
$res->send('Cache invalidado.');
});
Recuperando Dados ou Executando um Callback
Para tentar recuperar dados do cache ou executar uma função de callback se os dados não forem encontrados, use o método remember
. Ele recebe a chave para identificar os dados, a função de callback para buscar dados frescos se os dados não estiverem em cache, o tempo de expiração em segundos (padrão é 3600 segundos ou 1 hora) e o formato de serialização (opcional: 'serialize'
, 'json'
ou 'yaml'
, padrão é 'serialize'
).
use Lithe\Support\Cache;
get('/settings', function ($req, $res) {
$settings = Cache::remember('app_settings', function() {
// Simula recuperação de configurações
return ['theme' => 'dark', 'language' => 'en'];
}, 3600, 'json');
$res->json($settings);
});