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! 🚀