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 Auch in der Bibliothek
Konfiguration von Java-Anwendungen: Bibliotheken und Tools zur Verwaltung von Einstellungen
Criterion für Rust: Vollständige Anleitung mit Beispielen
Arbeit mit Apache Kafka in Swift (iOS/macOS): Bibliotheken und Beispiele
HTML-Parsing in PHP: Überblick über Bibliotheken und Werkzeuge
HTML-Parsing in C# (.NET): Bibliotheken HtmlAgilityPack und AngleSharp