Data da publicação: 06/09/2025.
Neste tutorial vou explicar como configurar e conectar uma programa Java usando Spring Boot com o gerenciador de Cache Redis
Conteúdo
1 Como configurar o projeto e rodar o Redis no Docker
Nesse início, vou considerar que você já possui conhecimento de como iniciar um projeto Maven, porém caso tenha dúvida aconselho a ler meu tutorial da "Minha Primeira API" onde eu explico os passos para fazer isso.
Após abrir o projeto Maven no Eclipse, devemos colocar ou confirmar que temos as dependências necessárias para se comunicar com o Redis e para expor APIs.
As dependências que vamos utilizar são: Actuator para verificar a saúde da aplicação, Web para expor as APIs, Spring Data Redis para se comunicar com Redis.
O Spring Data Redis vai fornecer APIs para que possamos se comunicar com o Redis de uma forma prática e fácil.
Segue na imagem abaixo as dependências que serão utilizadas nesse tutorial e que você deve adicionar no seu pom.xml.

Agora precisamos ter um servidor do Redis rodando localmente, para isso vamos utilizar o Docker.
Para iniciar um servidor do Redis utilizando o Docker basta rodar o comando "docker run -d --name local-redis -p 6379:6379 redis", então o servidor do Redis irá subir no container. Nesse comando temos os parâmetros -d, que fará com que o container rode em plano de fundo, -p, que irá expor a porta 6379 e --name, que nos permite dar um nome para o nosso container, no caso local-redis. Após rodar o comando você pode utilizar o comando "docker logs local-redis" para verificar se o container subiu corretamente.

O Spring Boot usa a classe chamada "RedisStandaloneConfiguration" para criar um objeto e adicionar as configurações do Redis para a aplicação. A configuração padrão utilizada é ter o host como "localhost" e a porta como "6379", sendo assim, no nosso caso não precisamos criar nenhuma configuração extra para que nossa aplicação se conecte corretamente com o Redis, entretanto, se por exemplo mudarmos a porta para 6378 precisaríamos alterar essa configuração.
Para garantir que a conexão funcione mesmo não sendo a configuração padrão vamos criar um novo pacote chamado config e dentro dele crie uma classe chamada RedisConfig. Anote essa classe com "@Configuration" e crie um método públic que retorne a classe "RedisStandaloneConfiguration" com o nome de "redisStandaloneConfiguration" que não recebe nenhum parâmetro. Dentro dele crie um objeto do tipo "RedisStandaloneConfiguration", em seguida utilize o método "setHostName" desse objeto para passar a string "localhost" e o método "setPort" para passar o inteiro "6379", então retorne esse objeto. O ideal é que tanto o host quanto a porta viessem do arquivo application.properties, mas para esse tutorial vamos deixar assim.


2 Criando as classe de entidade e repository
Com as configurações feitas, agora precisamos criar as classes de entidade que representará a estrutura do objeto no Redis e o repositório que se comunicará com o Redis para enviar o objeto.
Crie um novo pacote no pacote principal com o nome de "entity" e dentro desse pacote crie uma nova classe chamada "Pessoa". Anote essa classe com "@RedisHash", essa anotação servirá para o Spring Boot identificar que esse será um objeto a ser salvo no Redis. Agora crie os atributos privados "String id", "String nome" e "LocalDate dataDeNascimento". Anote o atributo id com "@Id" para que o Spring Boot identifique que esse atributo será a o identificador do registro. Por fim crie os gets e sets.

Agora crie um novo pacote chamado "repository" e dentro dele crie uma nova interface chamada "PessoaRepository". Extenda a interface CrudRepository e passe como parâmetro "Pessoa" e "String". Esses parâmetros significam que esse repositório irá persistir objetos do tipo Pessoa que tem o identificador do tipo String. Por fim anote a interface com a anotação "@Repository".

3 Cadastrando, Consultando, Alterando e Excluindo dados via API
Pronto, temos nosso projeto preparado para enviar e receber dados do Redis, agora vamos criar APIs para fazer essas comunicações.
Para fins de estudo, utilizaremos a mesma entidade como parâmetro da nossa API, porém no mercado de trabalho é bem comum que seja uma outra classe chamada DTO ao invés da entidade diretamente. Dito isso, crie um novo pacote chamado "controller" e dentro dele crie uma classe chamada "PessoaController". Anote essa classe com "@RestController" e "@RequestMapping("/pessoas")". Adicione todos os imports (lembre-se que pode utilizar CTRL + o).
Para receber os dados, crie um método chamado cadastrar e receba um objeto do tipo "Pessoa". Anote o método com "@PostMapping" e o parêmtro do método com "@RequestBody". A anotação "@PostMapping" serve para receber requisições http do tipo Post e a anotação "@RequestBody" serve para informar o Spring que é esperado um objeto json no corpo da requisição com o mesmo formato da sua classe. Além disso, como retorno do método, coloque a classe Pessoa.
No mercado de trabalho temos um padrão de projeto que fala que a classe controller vai chamar uma classe service e a classe service vai chamar a classe repository que vai adicionar no redis. Porém como o intuito desse tutorial é apenas exemplificar como se comunicar com o Redis, vamos criar diretamente a interface Repository.
Agora vamos "injetar" a dependência "PessoaRepository" dentro do controller. A injeção de dependência é um padrão de projeto que o Spring utiliza para reaproveitar os objetos, ou seja, quando você anotou a interface PessoaRepository com "@Repository" o Spring automaticamente vai criar um objeto da sua interface e vai deixar ele disponível para ser utilizado, e agora nós vamos aprender a como utilizá-lo. Crie um atributo privado dentro da classe PessoaController do tipo PessoaRepository, ficando: "private PessoaRepository pessoaRepository;". Agora para informar o Spring que você quer injetar a dependência, basta anotar esse atributo com "@Autowired" e pronto, ele será populado com o objeto. Nas novas versões do Spring Boot é possível também injetar a dependência deixando o atributo como final e recebendo ele no construtor, mas nós vamos utilizar a anotação mesmo.
Pronto, praticamente tudo já está preparado, agora dentro do método cadatrar antes da linha de return set o valor do id da pessoa com o "UUID.randomUUID.toString()". O uuid é a sigla de universally unique identifier e ele será nosso identificador da pessoa. agora retorne o retorno do método save do pessoaRepository passando o objeto pessoa.

Agora para testar vamos utilizar uma aplicação chamada Postman, ela nos permite fazer chamadas HTTP do tipo Post e passar um objeto json no corpo da requisição.
Primeiro execute o seu projeto clicando com o botão direito do mouse em cima da classe Application -> Run As -> Java Application, e então abra o Postman e crie uma nova requisição, então mude o método para POST, selecione "raw", selecione "JSON" e coloque '{"nome": "A Primeira Pessoa", "dataDeNascimento": "1985-05-01"}'. Após preencher tudo clique em Send e se funcionar você recebará a resposta na tela abaixo e com o código HTTP 200 OK.

Pronto! Agora para fazer os métodos de Consultar, Alterar e Excluir é bem fácil.
Vamos começar com o de Consultar. Para simplificar vamos retornar todas as pessoas cadastradas, porém lembre que retornar todos os registros cadastrados pode ser perigoso no ambiente real, pois caso tenha milhões de registros pode afetar o desempenho do redis e do seu programa! Mas para nosso estudo tudo bem. Crie um método chamado "consultar" que retorne um Iterable de Pesssoa e no retorno desse método use o "pessoaRepository.findAll();". Anote seu método com "@GetMapping" e pronto, você ja pode executar seu programa novamente testando o endpoint "http://localhost:8080/pessoas" direto no navegado ou no Postman, pois esse é um método GET.


Agora vamos fazer o método de alteração. Crie um novo método na sua classe de controller, esse método retornará uma Pessoa, ele se chamará "alterar" e receberá uma pessoa com a anotação "@RequestBody", ficando "public Pessoa alterar(@RequestBody Pessoa pessoa)". O Spring Data trata o método save do repositório como um "upsert", isso significa que ele insere quando o registro não existir (no nosso caso quando o id for nulo ou um que não existe) e atualiza quando o registro já existir, sendo assim também utilizaremos "pessoaRepository.save(pessoa)" no retorno do nosso novo método. Por fim anote esse novo método com "@PutMapping" e pronto, ele já pode ser testado. Execute a sua aplicação e no Postman utilizar o método PUT e passe no corpo da requisição '{"id": "f30a5784-a567-4a73-952a-5e8807066354","nome": "Alteração de pessoa","dataDeNascimento": "1999-11-25"}', repare que nesse objeto json eu coloquei valor do id como "f30a5784-a567-4a73-952a-5e8807066354", substitua esse valor pelo retornado na sua API de consulta e se tudo funcionar esses mesmos valores serão exibidos na resposta.


Por último, vamos fazer o delete, crie um novo método chamado "deletar" que retorna void e recebe uma String id. Esse parâmetro deve ser anotado com "@RequestParam", a assinatura ficará: "public void deletar(@RequestParam String id)". Dentro desse método chame o método "pessoaRepository.deleteById(id)". Agora anote seu novo método com "@DeleteMapping" e pode executar a aplicação. Para testar vá no Postman, altere o método http para DELETE, clique em "Params", insira em Key o valor id e em Value o valor f30a5784-a567-4a73-952a-5e8807066354, ou seja, o valor que retornou do seu método consultar, e então clique em send. Como resposta você receberá "Status 200 OK", isso significa que funcionou! Caso você queira confirmar, você pode utilizar o seu método de consultar para ver o retorno.


Conclusão
Após fazer esse tutorial você conseguiu comunicar com o Redis através do Java usando Spring Boot e Spring Data. Também conseguiu executar os métodos HTTP POST, GET, PUT e DELETE para Cadastrar, Consultar, Alterar e Deletar dados do Redis. PARABÉNSSS por ter chegado até aqui! Espero que continue evoluindo e que tenha te ajudado. Até a próxima!