Salvando suas views em Cache utilizando Redis e o Framework Express

Olá novamente. Nesse post, mostrarei como utilizar o pacote express-redis-cache para salvar suas views em cache, reduzindo, assim, o tempo de carregamento das páginas.

O pacote é bastante simples de ser utilizado, mas também é bastante completo. Utilizando-o no blog, não senti falta de nenhum recurso adicional. Seu desempenho também é bastante satisfatório, visto que os caches são armazenados num servidor Redis.

Instalação e Configuração

Para instalá-lo, adicione o pacote express-redis-cache às dependências de seu arquivopackage.json, ou digite

Neste tutorial assumirei que a versão do pacote express-redis-cache instalada é a mais recente até o momento (0.1.7).

Para utilizá-lo, devemos informar os parâmetros de conexão do servidor Redis.

O parâmetro prefix é utilizado para formar as string que identificarão cada uma das páginas armazenadas em cache.

Se você já tiver uma conexão Redis estabelecida, pode utilizar o parâmetro {client : redis_client} na inicialização, omitindo host, port e auth_pass. Se for necessário a utilização de senha para a conexão ser realizada, essa é, até o momento, a única forma de isso ser feito.

Utilização Básica

Para utilizar o pacote, devemos adicionar seu middleware a todas as rotas em que desejamos utilizá-lo.

Isso pedirá ao pacote para verificar se há alguma entrada de nome APP_NAME + '/' armazenada em cache. Em caso negativo, a função home será executada, e enviará a string ‘Welcome to my app’ como resposta à requisição.

Essa resposta será automaticamente salva em cache, com a entrada APP_NAME + '/'. Enquanto esse cache não expirar, a função home() não será mais executada.

Alterando o nome das Entradas

Você pode alterar o nome de uma entrada como a seguir.

ou fazendo

ou, ainda,

Decidindo Utilizar (ou não) Cache

Você pode escolher não utilizar a resposta armazenada em cache, mesmo se ela ainda não tiver expirado. Para isso, faça

Sobrescrevendo o parâmetro expire

Para alterar a vida útil padrão do cache, utilize

Excluindo entradas do cache

Você pode excluir entradas do cache, mesmo que elas ainda não tenham expirado.

Se você possui paginação em sua home, com cada página salva com as entradas home.page.0,home.page.1, e assim por diante, você pode excluir todas as entradas numa única chamada à função del().

Debugando

Várias mensagens de log são enviadas pelo pacote utilizado. Para escutá-las, faça

E é isso! Para aplicações de médio/grande porte, salvar as views em cache trará um ganho considerável de performance. Contudo, deve-se tomar cuidado para remover o cache sempre que o conteúdo do site for alterado. Afinal Você não quer uma página com um html antigo incluindo um javascript modificado, quer?