Cliente Redis para Java: Jedis, Lettuce y Redisson — descripción general y ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Cliente Redis para Java: Jedis, Lettuce y Redisson — guía detallada



Redis es un almacén de datos de tipo «clave-valor» de alto rendimiento que funciona en memoria RAM. Para interactuar con Redis desde aplicaciones Java, existen varias bibliotecas maduras. En este artículo, analizaremos los tres clientes Redis más populares para Java: Jedis, Lettuce y Redisson. Conocerá sus características, ventajas y obtendrá ejemplos de código listos para usar para un inicio rápido.



1. Jedis — cliente simple y ligero



Jedis es un cliente minimalista y no seguro para subprocesos, ideal para proyectos simples y aplicaciones monolíticas. Proporciona acceso directo a los comandos de Redis a través de una API simple. Jedis no admite llamadas asíncronas «de fábrica», pero lo compensa con su facilidad de uso.



Agregar dependencia (Maven)

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


Ejemplo: conexión y operaciones básicas

import redis.clients.jedis.Jedis;

public class JedisExample { public static void main(String[] args) { // Conexión a Redis (por defecto localhost:6379) try (Jedis jedis = new Jedis("localhost", 6379)) { // Autenticación (si se ha establecido una contraseña) // jedis.auth("password");

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

// Trabajar con 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

// Establecer TTL (tiempo de vida de la clave) jedis.expire("user:100", 60); // La clave vive 60 segundos } }}


Ventajas y desventajas de Jedis

  • Ventajas: umbral de entrada mínimo, peso ligero, soporte completo de comandos de Redis.
  • Desventajas: no es seguro para subprocesos (requiere un pool de conexiones), no tiene API asíncrona, no tiene soporte integrado para estructuras de datos distribuidas.


2. Lettuce — cliente asíncrono y reactivo



Lettuce es un cliente Redis moderno y seguro para subprocesos, construido sobre Netty. Admite programación síncrona, asíncrona y reactiva (Reactive Streams). Lettuce es ideal para aplicaciones de alta carga y asíncronas en Java 8+.



Agregar dependencia (Maven)

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


Ejemplo: conexión así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) { // Crear el cliente RedisClient redisClient = RedisClient.create("redis://localhost:6379"); // Abrir la conexión try (StatefulRedisConnection<String, String> connection = redisClient.connect()) { RedisAsyncCommands<String, String> async = connection.async(); // Establecer valor de forma asíncrona CompletableFuture<String> setFuture = async.set("key:1", "Hello from Lettuce!").toCompletableFuture(); // Obtener valor de forma asíncrona

Recommendations