O Redis é um banco de dados em memória para criar caches na aplicação, tornando o acesso a dado mais rápidos.
Claro que não é simplesmente fazer cache de toda a aplicação, por isso é preciso entender como funciona o sistema. O cache é indicado para tabelas que tem bastante acesso e pouca alteração, diminuindo dessa forma o acesso desnecessário ao banco e ajudando na saúde da aplicação como um todo, pois desonerando o acesso ao banco com coisas que mudam pouco deixamos ele livre para responder a requisições mais importantes.
Pra começarmos, precisamos adicionar a dependência no projeto:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-cache</artifactId>
</dependency>
Uma vez adicionada a dependência, é preciso adicionar o endereço e a porta no arquivo application.properties:
spring.data.redis.host=127.0.0.1
spring.data.redis.port=6379
É preciso também habilitar o Cache na aplicação, assim como é habilitado as requisições assíncronas, com o uso de anotação na classe principal:
@EnableCaching
Agora o Redis está configurado para ser usado, o que falta é usar o Cache no projeto. Os métodos que desejamos que tenham seu resultado guardado no cache (geralmente estão nas classes de negócio - também chamadas de services - ou no DAO). Basta anotá-los com @Cacheable e dar um nome para esses dados na tabela de cache:
@Cacheable(value = "nome_da_tb_de_cache")
E para atualizar os dados, fazendo o sistema ir buscar no banco? Podemos anotar os métodos de inserção, update e exclusão com @CacheEvict passando o nome da tabela de cache e se queremos limpar todos os registros:
@CacheEvict(value = "nome_da_tb_de_cache", allEntries = true)
Isso vai limpar os dados. Também podemos definir um tempo de vida (TTL) para o cache no application.properties, o que dá a ele um tempo padrão de vida (o default é ficar pra sempre).
# TTL em milissegundos (10 minutos)
spring.cache.redis.time-to-live=600000
Existem outras formas que podem ser pesquisadas caso haja necessidade, como o tamanho do cache.
Nenhum comentário:
Postar um comentário