A integração do Redis em um projeto Spring Boot é simplificada pelas capacidades de confiugração automática do framework. Este guia descreve os passos principais para estabelecer a comunicação com um servidor Redis e utilizá-lo para armazenamento ou caching.
- Adicionando Dependências
Inclua o starter do Spring Data Redis no arquivo de build do projeto, como no exemplo Maven:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
Verifique a compatibilidade de versões com seu ambiente Spring Boot.
- Configuração da Conexão
Defina os parâmetros do servidor Redis no arquivo de propriedades da aplicação. Exemplo usando application.yml:
spring:
redis:
host: localhost
port: 6380
password: segredo123
- Criação de um Repositório Personalizado
Utilize Spring Data Redis para abstrair operações de dados. Declare uma interface de repositório:
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface CacheDeSessoes extends CrudRepository<Sessao, String> {
// Métodos de consulta customizados podem ser adicionados aqui
}
Substitua Sessao pela sua entidade de domínio.
- Injeção do Template Redis
Para operações diretas, injete o StringRedisTemplate ou RedisTemplate em um componente de serviço:
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
@Service
public class GerenciadorCache {
private final StringRedisTemplate redisOperacoes;
public GerenciadorCache(StringRedisTemplate redisOperacoes) {
this.redisOperacoes = redisOperacoes;
}
public void salvarNoCache(String chave, String valor) {
redisOperacoes.opsForValue().set(chave, valor);
}
}
- Seleção do Cliente Redis
Por padrão, o Spring Boot usa Lettuce. Para alternar para Jedis, ajuste as propriedades:
spring:
redis:
lettuce:
enabled: false
jedis:
enabled: true
- Configuração de SSL e Clusters
Para conexões seguras, adicione configurações SSL. Em amibentes de cluster, especfiique os nós:
spring:
redis:
cluster:
nodes: "redis-node1:6379,redis-node2:6379"
ssl:
enabled: true
- Integração com Spring Cache
Para usar o Redis como provedor de cache do Spring, adicione o starter de cache e anote métodos com @Cacheable:
import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;
@Service
public class ServicoDados {
@Cacheable(value = "cacheConsultas", key = "#id")
public String buscarDado(String id) {
// Lógica para recuperar dados
return "resultado";
}
}
Ative o cache na classe principal com @EnableCaching.