Cliente Redis para Java: Jedis, Lettuce e Redisson — visão geral e exemplos

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Cliente Redis para Java: Jedis, Lettuce e Redisson — guia detalhado



Redis é um armazenamento de dados do tipo chave-valor de alto desempenho, que opera na memória RAM. Para interagir com Redis a partir de aplicações Java, existem várias bibliotecas maduras. Neste artigo, veremos os três clientes Redis mais populares para Java: Jedis, Lettuce e Redisson. Você conhecerá suas características, vantagens e obterá exemplos de código prontos para um início rápido.



1. Jedis — cliente simples e leve



Jedis é um cliente minimalista e não seguro para threads, ideal para projetos simples e aplicações monolíticas. Ele fornece acesso direto aos comandos Redis através de uma API simples. Jedis não suporta chamadas assíncronas nativamente, mas compensa com sua facilidade de uso.



Adicionando dependência (Maven)

<dependency>    <groupId>redis.clients</groupId>    <artifactId>jedis</artifactId>    <version>5.1.0</version></dependency>


Exemplo: conexão e operações básicas

import redis.clients.jedis.Jedis;

public class JedisExample { public static void main(String[] args) { // Conexão ao Redis (padrão localhost:6379) try (Jedis jedis = new Jedis("localhost", 6379)) { // Autenticação (se uma senha for definida) // jedis.auth("password");

// Definir valor jedis.set("user:100", "Alice"); // Obter valor String user = jedis.get("user:100"); System.out.println("User: " + user); // User: Alice

// Trabalhando com hashes jedis.hset("user:200", "name", "Bob"); jedis.hset("user:200", "age", "30"); String name = jedis.hget("user:200", "name"); System.out.println("Name: " + name); // Name: Bob

// Definir TTL (tempo de vida da chave) jedis.expire("user:100", 60); // Chave vive por 60 segundos } }}


Prós e contras do Jedis

  • Prós: baixa barreira de entrada, leve, suporte completo aos comandos Redis.
  • Contras: não é seguro para threads (necessita de pool de conexões), sem API assíncrona, sem suporte nativo para estruturas de dados distribuídas.


2. Lettuce — cliente assíncrono e reativo



Lettuce é um cliente Redis moderno, seguro para threads, construído sobre Netty. Ele suporta programação síncrona, assíncrona e reativa (Reactive Streams). Lettuce é ideal para aplicações de alta carga e assíncronas em Java 8+.



Adicionando dependência (Maven)

<dependency>    <groupId>io.lettuce</groupId>    <artifactId>lettuce-core</artifactId>    <version>6.3.1.RELEASE</version></dependency>


Exemplo: conexão assíncrona

import io.lettuce.core.RedisClient;import io.lettuce.core.api.StatefulRedisConnection;import io.lettuce.core.api.async.RedisAsyncCommands;

import java.util.concurrent.CompletableFuture;

public class LettuceAsyncExample { public static void main(String[] args) { // Criar cliente RedisClient redisClient = RedisClient.create("redis://localhost:6379"); // Abrir conexão try (StatefulRedisConnection<String, String> connection = redisClient.connect()) { RedisAsyncCommands<String, String> async = connection.async(); // Definir valor assíncrono CompletableFuture<String> setFuture = async.set("key:1", "Hello from Lettuce!").toCompletableFuture(); // Obter valor assíncrono

Recommendations