IBM Cloud Docs
Redis 8 Merkmale

Redis 8 Merkmale

Redis 8.2 bietet erhebliche Verbesserungen gegenüber Redis 7.x durch höhere Leistung, verbesserte Speichereffizienz, stärkere Beobachtbarkeit und verbesserte Entwicklererfahrung. 8.2 bietet neue Funktionen für Streams, Bitmaps, Vektorsuche und Clustermetriken unter Beibehaltung des vertrauten Redis Programmiermodells.

Die wichtigsten Verbesserungen in 8.2 sind die folgenden:

  • Signifikante Leistungssteigerung bei gängigen Befehlen und Arbeitslasten.
  • Geringere Speichernutzung, insbesondere für JSON und Schlüssel-Metadaten.
  • Neue Funktionen in Streams, Bitoperationen und Vektorsuche.
  • Erweiterte Metriken und Beobachtbarkeit bei Clustern und Replikation.

Upgrading von Redis 7.2 auf Redis 8.2

Informationen über ein Upgrade von Redis 7.2 auf Redis 8.2 finden Sie unter Upgrade auf eine neue Hauptversion.

Redis module

Redis 8 unterstützt mehrere offizielle Module, die die Funktionalität für fortgeschrittene Anwendungsfälle erweitern. Die wichtigsten Module und ihre Funktionen werden in den folgenden Abschnitten beschrieben.

RedisBloom

RedisBloom ist ein offizielles Modul von Redis, das probabilistische Datenstrukturen bereitstellt: Bloom Filter, Cuckoo Filter, Count-Min Sketch und Top-K. Diese Strukturen tauschen Exaktheit gegen extreme Raumeffizienz und Geschwindigkeit ein, was sie ideal macht, wenn ungefähre Antworten mit einer bekannten Fehlergrenze akzeptabel sind.

Die wichtigsten Funktionen von RedisBloom sind folgende:

  • Bloom-Filter: prüft, ob ein Element in einer Menge enthalten sein kann, mit konfigurierbarer Falsch-Positiv-Wahrscheinlichkeit und ohne Falsch-Negative.

  • Cuckoo Filter: ähnlich wie Bloom, unterstützt aber Löschungen natürlicher.

  • Count-Min Sketch: schätzt die Häufigkeit von Ereignissen in einem Streaming-Verfahren (z. B. wie oft eine Taste erscheint).

  • Top-K: Verfolgt die häufigsten Elemente in einem Datenstrom.

Die typischen Anwendungsfälle für RedisBloom sind folgende:

  • Überprüfung von Duplikaten und bereits gesehenen Daten (URLs, E-Mails und Benutzer-IDs).

  • Aufdeckung von Betrug und Verhinderung von Missbrauch (Kennzeichnung verdächtiger Muster ohne Speicherung des gesamten Verlaufs).

  • Empfehlungssysteme und Trendlisten, die Count-Min Sketch und Top-K verwenden.

  • Zwischenspeichern von Vorfiltern, um unnötige Backend-Lookups zu vermeiden.

RedisBloom beispiel

Erstellen eines Bloom-Filters mit einer Fehlerquote von 1% und einer Kapazität von 1000:

> BF.RESERVE bikes:models 0.01 1000

OK

So fügen Sie einen Modellnamen hinzu und überprüfen ihn:

> BF.ADD bikes:models "Smoky Mountain Striker"

(integer) 1

> BF.EXISTS bikes:models "Smoky Mountain Striker"

(integer) 1

Weitere Informationen finden Sie in der Dokumentation RedisBloom filter

RediSearch

RediSearch ist eine Abfrage- und Indizierungsmaschine für Redis, die Volltextsuche, sekundäre Indizierung, Aggregationen und Unterstützung für vektorielle Ähnlichkeitssuche bietet. RediSearch indexiert Redis Daten (z. B. Hashes und JSON) und ermöglicht leistungsstarke Abfragen mit Scoring, Filterung und Hervorhebung.

Die wichtigsten Funktionen von RediSearch sind folgende:

  • Volltextsuche mit Stemming, Phonetik und Fuzzy Matching.

  • Numerische, Tag- und Geodatenfelder für erweiterte Filter.

  • Aggregationsmaschine für Facettierung, Analyse und Ranking.

  • Integration mit Vektorfeldern für die semantische und approximative Suche nach dem nächsten Nachbarn (ANN).

Die typischen Anwendungsfälle für RediSearch sind folgende:

  • Produktkatalogsuche mit Filtern und Facetten.

  • Protokoll- und Ereignissuche mit Freitext- und strukturierten Filtern.

  • Echtzeitsuche von Nutzerinhalten (Tweets, Beiträge und Dokumente).

  • Text- und Vektorsuche kombiniert für KI-gestützte Anwendungen.

RediSearch beispiel

Um einen Index zu erstellen und ein Dokument hinzuzufügen:

> FT.CREATE idx ON HASH PREFIX 1 "doc:" SCHEMA title TEXT

OK

> HSET doc:1 title "hello redis"

(integer) 1

Zur Suche nach Text:

> FT.SEARCH idx "hello"

1) (integer) 1

2) "doc:1"

3) 1) "title"

   2) "hello redis"

Weitere Informationen finden Sie in der Dokumentation RediSearch.

RedisJSON

RedisJSON führt einen nativen JSON-Datentyp für Redis ein, der das Speichern, Abrufen und teilweise Aktualisieren von JSON-Dokumenten ermöglicht, die eine JSONPath-ähnliche Syntax verwenden. RedisJSON ist für den schnellen Zugriff auf Unterdokumente optimiert und lässt sich mit anderen Funktionen von Redis wie RediSearch integrieren.

Die wichtigsten Funktionen von RedisJSON sind folgende:

  • Speichern Sie strukturierte JSON-Dokumente als Werte erster Klasse.

  • Abrufen oder Aktualisieren bestimmter Pfade ohne Laden des gesamten Dokuments.

  • Unterstützung für Arrays, Objekte und verschachtelte Strukturen.

  • Option zur Integration mit Such- und Abfragefunktionen für die Indizierung von JSON-Feldern.

Die typischen Anwendungsfälle von RedisJSON sind die folgenden:

  • Benutzerprofile und Sitzungen mit häufig aktualisierten verschachtelten Feldern.

  • Konfigurationsdokumente und Merkmalsauszeichnungen.

  • Produktkataloge oder Inhaltsobjekte, die von verschiedenen Diensten gemeinsam genutzt werden.

  • JSON-basierte APIs, bei denen Redis als Hochgeschwindigkeits-Backing-Store fungiert.

RedisJSON beispiel:

Zum Speichern eines einfachen JSON-Dokuments:

127.0.0.1:6379> JSON.SET user:1 $ '{"name":"Alice","age":30}'

OK

Um ein Feld zu erhalten:

127.0.0.1:6379> JSON.GET user:1 $.name

"\"Alice\""

Weitere Informationen finden Sie in der Dokumentation RedisJSON.

RedisTimeSeries

RedisTimeSeries ist ein Modul für die effiziente Aufnahme, Speicherung, Abfrage, Aggregation und das Downsampling von Zeitreihendaten. RedisTimeSeries fügt einen Zeitserien-Datentyp und entsprechende Befehle hinzu, um Metriken und Ereignisse im Zeitverlauf zu modellieren.

Die wichtigsten Funktionen von RedisTimeSeries sind folgende:

  • Ingestion mit hohem Durchsatz und automatischem Zeitstempel.

  • Bereichsabfragen über Zeitintervalle, mit Aggregationen wie avg, min, max und sum.

  • Aufbewahrungsrichtlinien und Verdichtungsregeln für die langfristige Speicherung.

  • Etiketten für die Gruppierung und Abfrage von Zeitreihen.

Die typischen Anwendungsfälle von RedisTimeSeries sind die folgenden:

  • Infrastruktur- und Anwendungsmetriken (CPU, Speicher, Latenz).

  • IoT sensormessungen und Telemetrie.

  • Finanztickdaten und Marktmetriken.

  • Unternehmens-KPIs und operative Dashboards.

RedisTimeSeries beispiel

So erstellen Sie eine Zeitreihe und fügen einen Wert hinzu:

> TS.CREATE temp:room1

OK

> TS.ADD temp:room1 * 25.3

(integer) 1736846400000

Um die neueste Probe zu erhalten:

> TS.GET temp:room1

1) (integer) 1736846400000

2) "25.3"

Weitere Informationen finden Sie in der Dokumentation RedisTimeSeries.

Redis Vektor

Redis Vector bietet einen Vektordatentyp und Funktionen für die Suche nach Vektorähnlichkeit, die ungefähre Abfragen nach dem nächsten Nachbarn (ANN) über Einbettungen unterstützen. Dadurch können KI- und ML-Workloads wie semantische Suche und Empfehlungen direkt in Redis ausgeführt werden.

Die wichtigsten Funktionen von Redis Vector sind folgende:

  • Speicherung von hochdimensionalen Vektoren (z.B. 128-1536 Dimensionen) mit konfigurierbaren Indextypen wie HNSW und flat.

  • K-Nächste-Nachbarn-Suche (KNN) auf Vektorfeldern unter Verwendung von Abstandsmetriken wie Kosinus, inneres Produkt oder L2.

  • Hybride Abfragen, die Vektorähnlichkeit mit Filterbedingungen für strukturierte Felder kombinieren.

  • Integration mit RediSearch oder Query Engine für flexible Schemata.

Die typischen Anwendungsfälle von Redis Vector sind die folgenden:

  • Semantische Dokumentensuche für RAG-Pipelines.

  • Personalisierte Empfehlungen unter Verwendung von Benutzer- oder Objekteinbettungen.

  • Ähnlichkeitssuche für Bilder, Audio oder Code-Einbettungen.

  • Erkennung von Betrug und Anomalien durch erlernte Einbettungen.

Redis Beispiel eines Vektors:

Erstellen eines minimalen Vektorindex und eines Dokuments (Beispiel mit 4 Feldern):

> FT.CREATE vIdx ON HASH PREFIX 1 "vdoc:" \

SCHEMA embedding VECTOR HNSW 6 TYPE FLOAT32 DIM 4 DISTANCE_METRIC COSINE

OK

> HSET vdoc:1 embedding "\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?"

(integer) 1

Zur KNN-Suche nach dem nächstgelegenen Vektor:

> FT.SEARCH vIdx "(*=>[KNN 1 @embedding $v AS score])" \

PARAMS 2 v "\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?\x00\x00\x80?" SORTBY score DIALECT 2

1) (integer) 1

2) "vdoc:1"

3) 1) "embedding"

   2) "\x00\x00\x80?..."

   3) "score"

   4) "0.000000"

Weitere Informationen finden Sie in der Dokumentation Vektorsuchkonzepte.

Versionshinweise und Änderungsprotokoll für Redis 7 bis Redis 8

Die funktionalen Unterschiede zwischen Redis 7 und Redis 8 sind wie folgt:

  • Verbesserte Streams-Befehle XDELEX und XACKDEL für einen atomaren Nachrichten-Lebenszyklus und eine sauberere Verwaltung von Verbrauchergruppen.

  • Erweiterte Bitmap-Operationen, die reichhaltigere BITOP-Operatoren für Analysen über große Bitsets verwenden.

  • Ausgereiftere Vektorsuchfunktionen, die in die Suchmaschine integriert sind.

  • Mehrere Sicherheits- und Stabilitätsverbesserungen, die in früheren Versionen von 7.x nicht verfügbar sind.

  • Der Vertrieb und die Verpackung von Modulen sind in 8.x zusammengefasst, was die Bereitstellung vereinfacht.