Redis-Client für Java: Jedis, Lettuce und Redisson – Überblick und Beispiele

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Redis-Client für Java: Jedis, Lettuce und Redisson – ausführlicher Leitfaden



Redis ist ein leistungsstarker In-Memory-Datenspeicher vom Typ Schlüssel-Wert. Für die Interaktion mit Redis aus Java-Anwendungen heraus gibt es mehrere ausgereifte Bibliotheken. In diesem Artikel betrachten wir die drei beliebtesten Redis-Clients für Java: Jedis, Lettuce und Redisson. Sie erfahren deren Besonderheiten, Vorteile und erhalten fertige Codebeispiele für den schnellen Einstieg.



1. Jedis – einfacher und leichter Client



Jedis ist ein minimalistischer, nicht threadsicherer Client, der sich ideal für einfache Projekte und monolithische Anwendungen eignet. Er bietet direkten Zugriff auf Redis-Befehle über eine einfache API. Jedis unterstützt keine asynchronen Aufrufe „von Haus aus“, gleicht dies aber durch seine einfache Handhabung aus.



Abhängigkeit einbinden (Maven)

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


Beispiel: Verbindung und grundlegende Operationen

import redis.clients.jedis.Jedis;

public class JedisExample { public static void main(String[] args) { // Verbindung zu Redis (standardmäßig localhost:6379) try (Jedis jedis = new Jedis("localhost", 6379)) { // Authentifizierung (falls ein Passwort gesetzt ist) // jedis.auth("password");

// Wert setzen jedis.set("user:100", "Alice"); // Wert abrufen String user = jedis.get("user:100"); System.out.println("User: " + user); // User: Alice

// Arbeiten mit 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

// TTL setzen (Lebensdauer des Schlüssels) jedis.expire("user:100", 60); // Schlüssel lebt 60 Sekunden } }}


Vor- und Nachteile von Jedis

  • Vorteile: minimale Einstiegshürde, geringes Gewicht, vollständige Unterstützung aller Redis-Befehle.
  • Nachteile: nicht threadsicher (Verbindungspool erforderlich), keine asynchrone API, keine integrierte Unterstützung für verteilte Datenstrukturen.


2. Lettuce – asynchroner und reaktiver Client



Lettuce ist ein moderner, threadsicherer Redis-Client, der auf Netty basiert. Er unterstützt synchrone, asynchrone und reaktive (Reactive Streams) Programmierung. Lettuce ist ideal für hochlastige und asynchrone Anwendungen ab Java 8+.



Abhängigkeit einbinden (Maven)

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


Beispiel: asynchrone Verbindung

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) { // Client erstellen RedisClient redisClient = RedisClient.create("redis://localhost:6379"); // Verbindung öffnen try (StatefulRedisConnection<String, String> connection = redisClient.connect()) { RedisAsyncCommands<String, String> async = connection.async(); // Asynchrones Setzen eines Wertes CompletableFuture<String> setFuture = async.set("key:1", "Hello from Lettuce!").toCompletableFuture(); // Asynchrones Abrufen

Empfehlungen