Lettuce: ein Java-Client für synchrone und reaktive Redis-Zugriffe
Erweiterter Java Redis-Client für threadsichere Synchronisierung, asynchrone und reaktive Nutzung. Unterstützt Cluster, Sentinel, Pipelining und Codecs.
Auf einen Blick
- Was ist das?
- lettuce wird anhand der README, der beschriebenen Architektur und der konkreten Einsatzgrenzen eingeordnet.
- Für wen ist es gedacht?
- Geeignet ist lettuce für Nutzer, deren Arbeitsablauf zu den dokumentierten Funktionen passt. Nicht geeignet ist es als pauschale Zusage für nicht beschriebene Plattformen, Leistung oder Support.
- Darf ich es kommerziell nutzen?
- Ja. MIT ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
- Wird es noch gepflegt?
- Ja. Die letzten Commits kamen vor 2 Tagen.
- In welcher Sprache ist es geschrieben?
- Hauptsächlich Java, laut der Sprachstatistik von GitHub.
Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 14. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.
TIEFGEHENDE OPEN-SOURCE-ANALYSE
Der dokumentierte Projektumfang · redis lettuce
Lettuce ist ein Java-Client für Redis, der von einer Verbindung aus synchrone, asynchrone und reaktive Befehlsschnittstellen anbietet. Laut README können mehrere Threads eine Verbindung gemeinsam nutzen, sofern sie blockierende und transaktionale Operationen wie BLPOP und MULTI/EXEC vermeiden. Der Client basiert auf Netty, und das Repository gibt an, dass diese Version gegen den aktuellen Redis-Source-Build getestet wurde. Dasselbe Verbindungsobjekt kann also für einfache get/set-Aufrufe, Future-basierte Aufrufe und reaktive Streams verwendet werden. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC.
Die zentrale Arbeitsweise · redis lettuce
Lettuce erfindet für jeden Redis-Befehl keine eigene API, sondern bildet Befehle direkt auf Java-Methodennamen ab. Die README sagt, dass jeder Redis-Befehl durch eine oder mehrere Methoden implementiert wird, deren Name identisch mit dem kleingeschriebenen Redis-Befehlsnamen ist. Wenn ein Befehl Modifikatoren besitzt, die den Ergebnistyp ändern, wird ein CamelCase-Modifikator an den Methodennamen angehängt; als Beispiel werden zrangebyscore für die Grundform und zrangebyscoreWithScores für die Variante mit Scores genannt. Diese Namenskonvention wird im Abschnitt Basic usage beschrieben und mit einem Link auf die Referenzdokumentation ergänzt. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC.
Konkrete Dateien und Schnittstellen · redis lettuce
Die README enthält kurze Codebeispiele für beide APIs. Im asynchronen Beispiel liefert connection.async() ein RedisStringAsyncCommands-Objekt, und Aufrufe wie async.set("key", "value") erzeugen ein RedisFuture. Das Beispiel verwendet LettuceFutures.awaitAll(set, get), um auf beide Futures zu warten, und vergleicht die Ergebnisse mit "OK" und "value". Das reaktive Beispiel nutzt connection.reactive(), um RedisStringReactiveCommands zu erhalten, verpackt set- und get-Aufrufe in Mono, abonniert die set-Operation und blockiert bei get mit block(). Die Beispiele sind rein illustrativ und enthalten weder Fehlerbehandlung noch Lebenszyklusverwaltung der Verbindung. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC.
Abhängigkeiten im Alltag · redis lettuce
Neben einem einzelnen Redis-Server unterstützt Lettuce laut README Redis Sentinel, Redis Cluster, SSL-Verbindungen und Unix-Domain-Socket-Verbindungen. Weiterhin werden eine Streaming-API, Codecs für Datenrepräsentationen wie UTF-8, Bit und JSON, mehrere Befehlsschnittstellen, native Transports sowie die Integration mit RediSearch, RedisJSON und Redis Vector Sets aufgeführt. Der Client wird als kompatibel mit Java 8 und höher beschrieben, mit einem impliziten automatischen Modul und ohne Moduldeskriptoren. Die genaue Semantik dieser Funktionen ist in der README nicht ausgeführt; sie verweist auf die Referenzdokumentation. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC.
Grenzen der README · redis lettuce
Releases werden in Maven Central veröffentlicht. Die README zeigt eine Maven-Abhängigkeit mit groupId io.lettuce, artifactId lettuce-core und einem Platzhalter x.y.z für die Version. Snapshot-Builds sind im Sonatype-Snapshot-Repository verfügbar; die Versionszeichenfolgen enden auf BUILD-SNAPSHOT. Für den Bau von Lettuce wird Apache Maven benötigt, und die Tests verlangen mehrere laufende Redis-Instanzen. Die Makefile-Ziele make start, make test, make stop und make clean sind dokumentiert, und die Tests laufen standardmäßig gegen Redis latest. Die README nennt keine expliziten Gradle- oder Ivy-Koordinaten, sagt aber, dass Binärdateien und Abhängigkeitsinformationen für diese Werkzeuge auf search.maven.org zu finden sind. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC.
Lizenz und Betriebsfragen · redis lettuce
Das Repository ist ein Fork von github.com/wg/lettuce und steht unter der MIT-Lizenz; das Urheberrecht liegt ab 2023 bei Redis Ltd. Die Lizenz erlaubt die Nutzung, Vervielfältigung, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und den Verkauf von Kopien der Software und verlangt, den Urheberrechtshinweis in wesentlichen Teilen aufzunehmen. Die Software wird ohne jegliche Gewährleistung bereitgestellt. Die README selbst enthält keine Leistungsbenchmarks, Verfügbarkeitsgarantien oder Sicherheitszusicherungen; sie verweist für Fehler und Fragen auf GitHub Issues. Diese Einschränkungen sind keine Aussagen über die Qualität des Projekts, sondern lediglich das Fehlen solcher Angaben im Quellmaterial. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC.
Prüfung mit lettuce
Teste mit Lettuce getrennt synchrone, Future- und reaktive Aufrufe sowie Cluster- oder Sentinel-Konfiguration und beobachte ausdrücklich blockierende Befehle wie BLPOP. Dieser Ablauf prüft genau die vom Projekt genannten Eingaben, Dateien und Ergebnisse. Ein erfolgreicher Minimaltest belegt keinen Dauerbetrieb, keine allgemeine Kompatibilität und keine Sicherheitsgarantie. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC. Lettuce muss in der konkreten Java-Anwendung mit der gewählten Redis-Version und dem passenden Transport geprüft werden. Vergleiche synchrone Aufrufe, CompletionStage und reaktive Publisher. Prüfe Verbindungswiederverwendung, Timeout, Reconnect und Fehlerbehandlung. Cluster, Sentinel, Pipeline und Transaktion sind eigene Fälle; aus einem erfolgreichen get folgt keine Aussage über BLPOP oder MULTI/EXEC.
Redaktionelles Fazit
Geeignet ist lettuce für Nutzer, deren Arbeitsablauf zu den dokumentierten Funktionen passt. Nicht geeignet ist es als pauschale Zusage für nicht beschriebene Plattformen, Leistung oder Support. Zuerst sollte geprüft werden: Teste mit Lettuce getrennt synchrone, Future- und reaktive Aufrufe sowie Cluster- oder Sentinel-Konfiguration und beobachte ausdrücklich blockierende Befehle wie BLPOP.
Community-Notizen