Client Redis pour Java : Jedis, Lettuce et Redisson — aperçu et exemples

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Client Redis pour Java : Jedis, Lettuce et Redisson — guide détaillé



Redis est un magasin de données clé-valeur haute performance fonctionnant en mémoire vive. Pour interagir avec Redis depuis des applications Java, il existe plusieurs bibliothèques matures. Dans cet article, nous examinerons les trois clients Redis les plus populaires pour Java : Jedis, Lettuce et Redisson. Vous découvrirez leurs caractéristiques, leurs avantages et obtiendrez des exemples de code prêts à l'emploi pour un démarrage rapide.



1. Jedis — un client simple et léger



Jedis est un client minimaliste, non thread-safe, idéal pour les projets simples et les applications monolithiques. Il offre un accès direct aux commandes Redis via une API simple. Jedis ne prend pas en charge les appels asynchrones « prêts à l'emploi », mais compense cela par sa simplicité d'utilisation.



Ajout de la dépendance (Maven)

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


Exemple : connexion et opérations de base

import redis.clients.jedis.Jedis;

public class JedisExample { public static void main(String[] args) { // Connexion à Redis (par défaut localhost:6379) try (Jedis jedis = new Jedis("localhost", 6379)) { // Authentification (si un mot de passe est défini) // jedis.auth("password");

// Définition d'une valeur jedis.set("user:100", "Alice"); // Récupération d'une valeur String user = jedis.get("user:100"); System.out.println("User: " + user); // User: Alice

// Travail avec les hachages 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

// Définition du TTL (durée de vie de la clé) jedis.expire("user:100", 60); // La clé vit 60 secondes } }}


Avantages et inconvénients de Jedis

  • Avantages : seuil d'entrée minimal, léger, prise en charge complète des commandes Redis.
  • Inconvénients : non thread-safe (nécessite un pool de connexions), pas d'API asynchrone, pas de prise en charge intégrée des structures de données distribuées.


2. Lettuce — un client asynchrone et réactif



Lettuce est un client Redis moderne, thread-safe, construit sur Netty. Il prend en charge la programmation synchrone, asynchrone et réactive (Reactive Streams). Lettuce est idéal pour les applications à forte charge et asynchrones sur Java 8+.



Ajout de la dépendance (Maven)

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


Exemple : connexion asynchrone

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) { // Création du client RedisClient redisClient = RedisClient.create("redis://localhost:6379"); // Ouverture de la connexion try (StatefulRedisConnection<String, String> connection = redisClient.connect()) { RedisAsyncCommands<String, String> async = connection.async(); // Définition asynchrone d'une valeur CompletableFuture<String> setFuture = async.set("key:1", "Hello from Lettuce!").toCompletableFuture(); // Récupération asynchrone

Recommendations