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 : aperçu des bibliothèques populaires

\n\n

Redis est un magasin de données clé-valeur hautes performances, largement utilisé pour la mise en cache, les sessions, les files d'attente et l'analyse en temps réel. Pour travailler avec Redis depuis Java, il existe plusieurs bibliothèques clientes matures. Dans cet article, nous examinerons les trois plus populaires : Jedis, Lettuce et Redisson. Chacune a ses propres caractéristiques, avantages et scénarios d'utilisation.

\n\n

1. Jedis — un client simple et léger

\n\n

Jedis est un client synchrone minimaliste pour Redis. Il est facile à apprendre et convient bien aux petits projets et microservices où l'asynchrone n'est pas nécessaire.

\n\n

Caractéristiques de Jedis :

\n
    \n
  • API synchrone (appels bloquants).
  • \n
  • Prise en charge du pool de connexions (JedisPool).
  • \n Prise en charge complète des commandes Redis.\n
  • Ne prend pas en charge les opérations asynchrones ou réactives.
  • \n
\n\n

Exemple de connexion et d'opérations de base :

\n
import redis.clients.jedis.Jedis;\nimport redis.clients.jedis.JedisPool;\n\npublic class JedisExample {\n    public static void main(String[] args) {\n        // Création d'un pool de connexions\n        try (JedisPool pool = new JedisPool("localhost", 6379);\n             Jedis jedis = pool.getResource()) {\n\n            // Définition et récupération d'une valeur\n            jedis.set("user:100", "Alice");\n            String value = jedis.get("user:100");\n            System.out.println("Valeur : " + value); // Affiche : Alice\n\n            // Travail avec les listes\n            jedis.lpush("queue", "task1");\n            jedis.lpush("queue", "task2");\n            String task = jedis.rpop("queue");\n            System.out.println("Tâche de la file : " + task); // Affiche : task1\n        }\n    }\n}
\n\n

Quand choisir Jedis :

\n
    \n
  • Projet simple sans exigences réactives.
  • \n
  • Besoins de dépendance minimale (un seul jar).
  • \n
  • Opérations bloquantes classiques.
  • \n
\n\n

2. Lettuce — un client asynchrone et réactif

\n\n

Lettuce est un client moderne construit sur Netty. Il prend en charge les API synchrones, asynchrones et réactives (Reactive Streams). Idéal pour les systèmes à forte charge.

\n\n

Caractéristiques de Lettuce :

\n
    \n
  • API asynchrone et réactive (basée sur Project Reactor).
  • \n
  • Prise en charge des clusters Redis, Sentinel, SSL.
  • \n
  • Opérations non bloquantes — haut débit.
  • \n
  • Prise en charge de Redis Pub/Sub, Streams, Transactions.
  • \n
\n\n

Exemple d'utilisation asynchrone :

\n
import io.lettuce.core.RedisClient;\nimport io.lettuce.core.api.StatefulRedisConnection;\nimport io.lettuce.core.api.async.RedisAsyncCommands;\n\npublic class LettuceAsyncExample {\n    public static void main(String[] args) {\n        RedisClient client = RedisClient.create("redis://localhost:6379");\n        try (StatefulRedisConnection<String, String> connection = client.connect()) {\n            RedisAsyncCommands<String, String> async = connection.async();\n\n            // Définition asynchrone\n            async.set("key:1", "Bonjour, Lettuce!");\n\n            // Récupération asynchrone avec callback\n            async.get("key:1").thenAccept(value -> \n                System.out.println("Reçu : " + value)\n            );\n\n            // Petit délai pour terminer l'opération asynchrone\n            try { Thread.sleep(100); } catch (InterruptedException e) { }\n        }\n        client.shutdown();\n    }\n}
\n\n

Quand choisir Lettuce :

\n
    \n
  • Systèmes à forte charge avec un grand nombre de requêtes.
  • \n
  • Nécessité d'asynchronisme ou de programmation réactive.
  • \n
  • Travail avec un cluster Redis ou Sentinel.
  • \n
\n\n

3. Redisson — un client aux fonctionnalités avancées

\n\n

Redisson n'est pas seulement un client, mais un véritable framework

Recommendations