A performance de um projeto é de vital importância para o sucesso de uma aplicação. Dificilmente um site que demore um tempo considerável para responder uma solicitação de um usuário, não sucumbirá ao fracasso. Pensando nisso, há diversas maneiras de tentar melhorar o desempenho de uma aplicação, dentre elas, utilizar o Cache para armazenar dados que são frequentemente utilizados, é uma ótima alternativa.
Como funciona o Cache
O Cache é um recurso que possibilita o acesso às informações de forma mais rápida. Basicamente, é uma forma de armazenar determinadas informações que são consumidas com mais frequência para que elas sejam disponibilizadas no menor tempo possível.
O funcionamento do Cache pode ser entendido da seguinte forma:
-
A aplicação verifica se os dados solicitados estão em cache;
-
Se sim, o cache devolve para a aplicação, que os exibe;
-
Se não, os dados são obtidos do banco de dados, salvos no cache e retornados para aplicação;
-
Da próxima vez, o cache já possuirá os dados armazenados e, assim, retornados em um tempo menor.
Instalando o Redis
A instalação do Redis varia conforme o sistema operacional utilizado, abaixo veremos como instalar o Redis no Windows, Linux e macOS.
Windows
A instalação do Redis no Windows é bem simples. Primeiro, precisamos baixar o arquivo .zip do diretório oficial do Redis ():
Após realizar o download, descompactamos e executamos o arquivo redis-server
, localizado no diretório 32bits
ou 64bits
, dependendo do sistema operacional.
Linux
A instalação do Redis no Linux também é bem simples. Primeiro, abrimos o terminal e digitamos os seguintes comandos:
sudo apt-get install redis-server
sudo systemctl enable redis-server.service
Com isso, o Redis será instalado e executado no Linux.
macOS
Para instalar o Redis no macOS também é super simples. Com o Homebrew instalado, podemos abrir o terminal e digitar o seguinte comando:
brew install redis
ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents
Com isso, o Redis será instalado e configurado para iniciar sempre que ligarmos o computador.
Curso Django - Módulo administrativo Django Admin
Conhecer o cursoConfigurando o Redis no Django
Com o Redis instalado, precisamos configurar a comunicação entre as tecnologias (Django e Redis). Para isso, o primeiro passo é instalar o pacote django-redis
na virtualenv do projeto seguindo os seguintes passos:
No PyCharm, vamos até a aba “Project Interpreter” e clicamos no “+” localizado no canto inferior esquerdo:
Após isso, buscamos pelo pacote “django-redis” e o instalamos em nossa virtualenv:
Com isso, o Redis já está pronto para ser utilizado em nosso projeto Django :)
Utilizando o Redis como Cache
Após instalar e configurar o Redis em nosso projeto Django, precisamos configurar o projeto para utilizar o Redis como Cache das informações. Para isso, no arquivo settings.py
, adicionamos a seguinte configuração:
CACHES = {
'default': {
'BACKEND': 'django_redis.cache.RedisCache',
'LOCATION': 'redis://127.0.0.1:6379/1',
'OPTIONS': {
'CLIENT_CLASS': 'django_redis.client.DefaultClient'
},
'KEY_PREFIX': 'django_orm'
}
}
A configuração acima permitirá que o Django se comunique com o servidor do Redis que está sendo executado localmente.
Agora precisamos indicar quais páginas utilizarão o Cache para armazenar suas informações. Para isso, no nosso arquivo de views
do projeto, adicionamos a anotação @cache_page(tempo_de_vida_cache)
nos métodos que queremos utilizar o cache (normalmente, nas páginas com mais acessos):
@cache_page(60)
def listar_clientes(request):
clientes = cliente_service.listar_clientes()
return render(request, 'clientes/lista_clientes.html', {'clientes': clientes})
Com isso, sempre que um usuário solicitar o método para listagem de todos os clientes, o Django, primeiro, verificará se estas informações existem no Redis. Se sim, é de lá que as informações serão listadas, caso contrário, o Django fará uma consulta no banco de dados, obterá a lista de clientes, inserirá no cache e retornará ao usuário.
Comparando performances
A quantidade de requisições por segundo pode variar um pouco, mas é bem nítido o ganho de performance do uso do Redis como Cache em nossa aplicação. Na imagem abaixo podemos ver a diferença entre a quantidade de requisições utilizando o Redis e o uso do banco de dados:
Curso Django - Desenvolvimento de APIs REST
Conhecer o cursoConclusão
O uso do Cache é uma ótima alternativa quando precisamos garantir o retorno dos dados em um tempo menor em páginas que são frequentemente acessadas. Vale lembrar que não devemos (e nem precisamos) usá-lo em todas as páginas, apenas nas mais acessadas.