Heim  >  Artikel  >  Datenbank  >  Einführung in relationale Abfragen in Redis

Einführung in relationale Abfragen in Redis

尚
nach vorne
2020-04-18 09:05:202463Durchsuche

Einführung in relationale Abfragen in Redis

In diesem Artikel wird anhand von Beispielen erläutert, wie Redis relationale Daten speichert und wie Matching-, Bereichs- und Fuzzy-Abfragen verwendet werden.

1. Speicherung relationaler Daten

Nehmen wir als Beispiel das Staff-Objekt in einer relationalen Datenbank oder einem Speichergitterprodukt wie GridGain (die unterste Ebene verwendet die Speichermodusspeicherung der H2-Datenbank). ), speichern wir die Daten des Objekts in Tabellenform. Da das Speichergitter basierend auf Objekten zwischengespeichert wird, ist eine zusätzliche Spalte (Staff-Spalte) erforderlich, um die Codierung des gesamten Objekts zu speichern, z. B. das serialisierte Binär- oder JSON-Format usw., damit es direkt an die Anwendung zurückgegeben werden kann Deserialisierung.

In Redis können wir die ID als eindeutige Kennung verwenden und sie mithilfe von drei Datenstrukturen speichern: Schlüsselwert, Hash und zSet. Der Schlüsselwert besteht darin, die ID und das gesamte Objekt zu speichern. Nachdem der ID-Bereich bestimmt wurde, kann das Objekt basierend darauf an den Client zurückgegeben werden.

Einführung in relationale Abfragen in Redis

2. Passende Abfrage

Die Verwendung von hget oder hmget der Hash-Tabelle kann dept='IT' oder dept in ('IT', 'QA ' ) Dies ist eine Abfrage mit exakter Übereinstimmung mit einem oder mehreren Werten. Nachdem Sie die ID-Liste erhalten haben, fragen Sie den Schlüsselwert ab, um das Objekt abzurufen.

3. Bereichsabfrage

Da wir das Alter als Score von zSet speichern und der Wert die ID ist, können wir die zrangeByScore-Methode von zSet verwenden, um den Wert des Scores innerhalb von a zu erhalten bestimmtes Intervall.

4. Fuzzy-Abfrage

Nach Redis 2.8.9 hat zSet eine sehr nützliche Methode hinzugefügt, zrangeByLex. Wir speichern die Werte im Format name:id Verwenden Sie zrangeByLex. Rufen Sie den Wert eines Buchstabens innerhalb eines bestimmten Bereichs ab. Beispiel: zrangeByLex-Name [A, (F, Sie können Allen, Aaron, Carter abfragen.

5. Paging-Abfrage

Gleichzeitig unterstützt zrangeByLex auch Paging-Abfragen und die Syntax ist ähnlich wie „Limit start, offset“. hat viele Einschränkungen.

Zum Beispiel:

1) Es ist nicht möglich, eine Abfrage mit mehreren Bedingungen zu implementieren, z. B. Alter>25 UND einem Namen wie „A%“. Dazu benötigen Sie mehrere Befehle und berechnen die Vereinigung oder den Schnittpunkt.

2) Fuzzy-Abfragen auf Chinesisch sind schwieriger.

Weitere Redis-Kenntnisse finden Sie in der Spalte

Redis-Einführungs-Tutorial

.

Das obige ist der detaillierte Inhalt vonEinführung in relationale Abfragen in Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen