[Redis Series 1] Nach dem Lesen dieses Artikels startet Redis! 9 grundlegende Datentypen und allgemeine Betriebsbefehle und Anwendungsszenarien in Redis

Vorwort

In der täglichen Entwicklung wählen wir im Allgemeinen relationale Datenbanken zum Speichern von Daten wie MySQL, Oracle usw. aus. In Geschäftsszenarien mit großer Parallelität werden relationale Datenbanken jedoch häufig zu Systemengpässen und können unsere Anforderungen nicht vollständig erfüllen Die nicht relationale Datenbank wurde geboren, die NoSQL-Datenbank.

Die häufigste Interpretation der NoSQL-Datenbank ist "nicht relational", und einige Leute erklären sie als "Nicht nur SQL". Nicht relationale Datenbanken garantieren keine Transaktionen, dh sie verfügen nicht über ACID-Funktionen. Dies ist auch der größte Unterschied zwischen nicht relationalen Datenbanken und relationalen Datenbanken. Die Redis, die wir einführen werden, sind eine Art NoSQL-Datenbank.

PS: Diese Artikelserie basiert auf der Version Redis5.0.5 .

Warum brauchen Sie eine NoSQL-Datenbank?

Im Vergleich zu herkömmlichen relationalen Datenbanken bieten NoSQL-Datenbanken die folgenden Vorteile:

  • 1. Es gibt keine Beziehung zwischen den Daten, die sehr einfach zu erweitern ist
  • 2. Unterstützung für das Lesen und Schreiben von massiven Daten, höhere Leistung bei hoher Parallelität
  • 3. Unterstützt verteilten Speicher und ist einfach zu erweitern und zu verkleinern

Gleichzeitig gibt es viele Arten von NoSQL-Datenbanken. Je nach Datenspeichertyp gibt es hauptsächlich die folgenden gemeinsamen NoSQL-Datenbanken:

  • 1. Schlüsselwertspeicherung. Wie zum Beispiel: Redis und MemcaheDB
  • 2. Dokumentenspeicherung. Wie zum Beispiel: MongoDB
  • 3. Spaltenspeicherung. Wie zum Beispiel: HBase
  • 4. Grafikspeicher. Wie zum Beispiel: Neo4j
  • 5. Objektspeicherung
  • 6. Andere Typen sind nicht mehr aufgeführt

Was ist Redis?

Redis vollständiger Name: REmote DIctionary Service, dh Remote Dictionary Service. Redis ist eine Open Source (in Übereinstimmung mit dem BSD-Protokoll), netzwerkgestützte, speicherbasierte und persistente protokollbasierte Key-Value-Datenbank.
Redis hat die folgenden Eigenschaften:

  • 1. Unterstützen Sie umfangreiche Datentypen. Wie Strings (Strings), Hashes (Hashes), Listen (Listen), Sets (Sets), sortierte Sets (sortierte Sets) und Bereichsabfragen, Bitmaps usw.
  • 2. Reichhaltige Funktionen. Bietet Persistenzmechanismus, Ablaufstrategie, Abonnement / Release und andere Funktionen
  • 3. Hohe Leistung, hohe Verfügbarkeit und Clusterunterstützung
  • 4. Bietet APIs in mehreren Sprachen

Einführung in Redis Grundkenntnisse

Redis verwendet Schlüssel- und Wertspeicher, und die maximale Länge von Schlüssel und Wert ist auf 512 MB begrenzt.

Redis verfügt standardmäßig über 16 Datenbanken. Dies kann in der Konfigurationsdatei redis.conf geändert werden:

databases 16

Diese 16 Datenbanken haben den Namen 0-15 und unterstützen keine Änderung von Namen. Die Daten zwischen den Datenbanken sind nicht isoliert . Wenn Sie beispielsweise zu einer Datenbank wechseln, führen Sie den Befehl flushhall aus, um die Daten aller Datenbanken zu löschen Es wird nicht empfohlen, verschiedene Geschäftssystemdaten über eine Datenbank zu isolieren, aber wir können sie für verschiedene Module im gleichen Geschäftssystem auf verschiedene Datenbanken einstellen.

Häufig verwendete Datenbankoperationsbefehle

  • Datenbank wechseln. Nach dem Wechseln der Datenbank wird die aktuelle Datenbanknummer angezeigt. In der Standarddatenbank mit der Nummer 0 wird die Nummer nicht angezeigt.
select 数据库编号

Fügen Sie hier eine Bildbeschreibung ein
Wie Sie in der folgenden Abbildung sehen können, setzen wir den Wert in Datenbank 0, sodass wir den Wert in anderen Datenbanken nicht erhalten können:
Fügen Sie hier eine Bildbeschreibung ein

  • Löschen Sie die aktuelle Datenbank
flushdb
  • Löschen Sie alle Datenbanken
flushall

Redis-Datentyp

In Redis werden bis zur Version 5.0.5 9 Datentypen unterstützt. Sie sind:

  • 1, Binärsichere Zeichenfolgen (binärsichere Zeichenfolgen)
  • 2, Listen (Liste)
  • 3. Sätze
  • 4. Sortierte Sets (bestelltes Set)
  • 5. Hashes
  • 6 、 Bit-Arrays (oder einfach Bitmaps) (位 图)
  • 7 、 HyperLogLogs
  • 8 、 Geospatial
  • 9 、 Streams

Obwohl hier 9 Typen aufgeführt sind, werden die ersten 5 am häufigsten verwendet.

In Redis werden für jeden Datentyp verschiedene Befehlstypen bereitgestellt. Lassen Sie uns diese nacheinander einführen.

1. Binärsichere Zeichenfolgen

Der Zeichenfolgentyp ist der am häufigsten verwendete Typ, und der Schlüsselwert in Redis kann nur als Zeichenfolge gespeichert werden, während der Wert 9 Datentypen unterstützen kann.

Zeichenfolgen in Redis können drei Datentypen speichern:

  • String
  • Ganze Zahl
  • Gleitkomma

Unsere Operationsbefehle für Zeichenfolgentypen enthalten daher auch Befehle für die automatische Inkrementierung. Schauen wir uns die allgemeinen Operationsbefehle für Zeichenfolgentypen an

Allgemeine Befehle

Hier sind einige häufig verwendete Bedienbefehle:

  • Wert einstellen (es können nur ein Schlüssel und ein Wert eingestellt werden)
set key value
  • Wert einstellen (Mehrfachschlüssel und Wert)
mset key1 value1 key2 value2
  • Nehmen Sie einen einzelnen Wert
get key
  • Nimm mehrere Werte
get key1 key2

Fügen Sie hier eine Bildbeschreibung ein

  • Zeigen Sie alle Schlüssel der aktuellen Datenbank an (verwenden Sie diesen Vorgang mit Vorsicht. Wenn zu viele Schlüsselwerte vorhanden sind, kann dies direkt zum Absturz führen.)
keys *
  • Zeigen Sie die Gesamtzahl der aktuellen Datenbankschlüssel an (geben Sie eine Ganzzahl zurück).
dbsize
  • Überprüfen Sie, ob der Schlüssel in der aktuellen Datenbank vorhanden ist (zurückgegeben wird eine Ganzzahl: 0-no1-yes)
exists key
  • Schlüssel umbenennen
rename oldKey newKey

Fügen Sie hier eine Bildbeschreibung ein

  • Schlüssel löschen (mehrere durch Leerzeichen getrennt, die Rückgabe ist die Anzahl der erfolgreich gelöschten Schlüssel)
del key

Fügen Sie hier eine Bildbeschreibung ein

  • Schlüsseltyp anzeigen
type key

Fügen Sie hier eine Bildbeschreibung ein

  • Inkrement um 1 (wenn der Wert keine Ganzzahl ist, wird ein Fehler gemeldet)
incr key
  • Erhöhen Sie die angegebene Größe (wenn der Wert keine Ganzzahl ist, wird ein Fehler gemeldet)
incrby key 需要自增的数字

Fügen Sie hier eine Bildbeschreibung ein

  • Legen Sie den Wert fest. Wenn der Schlüssel bereits vorhanden ist, schlägt die Einstellung fehl
setnx key value # 设置单个key
mset key1 value1 key2 value2 # 设置多个key

Fügen Sie hier eine Bildbeschreibung ein
PS: setnx und mset sind atomare Operationen. Sie müssen alle erfolgreich gesetzt werden, um true zurückzugeben. Es gibt auch Parameter zum Festlegen der Ablaufzeit. Im Allgemeinen werden verteilte Sperren basierend auf diesem Befehl mit Ablaufzeit implementiert.

  • Schlüssel mit Ablaufzeit einstellen
set key value EX|PX 18 # EX表示秒,PX表示毫秒

Das folgende Beispiel läuft nach 5 Sekunden automatisch ab
Fügen Sie hier eine Bildbeschreibung ein

  • Stellen Sie die Ablaufzeit individuell ein. Um die Atomizität sicherzustellen, verwenden wir jedoch immer den obigen Befehl set mit der Zeit direkt.
expire key

Anwendungsszenario

Die Anwendungsszenarien des Zeichenfolgentyps sind sehr umfangreich. Normale Hot-Daten können mithilfe des Zeichenfolgentyps zwischengespeichert werden. Die folgenden Szenarien können hauptsächlich angewendet werden:

  • 1. Hotspot-Daten und deren Objektcache
  • 2. Verteilte Sitzungsfreigabe
  • 3. Verteilte Sperren (mit dem Befehl setnx)
  • 4. Redis wird unabhängig bereitgestellt und kann als global eindeutige ID verwendet werden
  • 5. Mit seinem Atominkrement-Befehl kann er als Zähler oder Strombegrenzung usw. verwendet werden.

2.Listen

Die Elemente in der Liste in Redis sind ebenfalls Zeichenfolgen, und wir können das angegebene Element an der angegebenen Position in der Liste hinzufügen. Operationsbefehle für Listendatentypen beginnen im Allgemeinen mit einem Kleinbuchstaben l.

Allgemeine Befehle

Schauen Sie sich einige häufig verwendete Bedienbefehle an:

  • Fügen Sie einen oder mehrere Werte in den Kopf des Listenschlüssels ein und erstellen Sie einen Schlüssel, wenn der Schlüssel nicht vorhanden ist
lpush key value1 value2
  • Fügen Sie einen Wert in den Kopf des Listenschlüssels ein und tun Sie nichts, wenn der Schlüssel nicht vorhanden ist
lpushx key value1 value2
  • Entfernen Sie das Kopfelement des Schlüsselwerts und geben Sie es zurück
lpop key
  • Fügen Sie einen oder mehrere Werte in das Ende des Listenschlüssels ein und erstellen Sie einen Schlüssel, wenn der Schlüssel nicht vorhanden ist
rpush key value1 value2
  • Fügen Sie einen oder mehrere Werte in das Ende des Listenschlüssels ein und tun Sie nichts, wenn der Schlüssel nicht vorhanden ist
rpushx key value
  • Entfernen Sie das letzte Element des Schlüsselwerts und geben Sie es zurück
rpop key
  • Gibt die Länge der Schlüsselliste zurück
llen key
  • Gibt das Element zurück, dessen Index Index in der Schlüsselliste ist. Der Kopf beginnt bei 0 und der Schwanz beginnt bei -1
lindex key index
  • Gibt die Elemente zwischen den Indizes start (einschließlich) und stop (einschließlich) in der Schlüsselliste zurück
lrange key start stop
  • Setzen Sie den Wert auf die angegebene Indexposition in der Schlüsselliste. Ein Fehler wird gemeldet, wenn der Schlüssel nicht vorhanden ist oder der Index außerhalb des Bereichs liegt
lset key index value
  • Fangen Sie die Elemente zwischen [Start, Ende] in der Liste ab und ersetzen Sie die ursprüngliche Liste, um sie zu speichern
ltrim key start end

Fügen Sie hier eine Bildbeschreibung ein

3.Sets

Die Sammlung in Redis ist eine ungeordnete Sammlung vom Typ String. Die Elemente in der Sammlung sind eindeutig und können nicht wiederholt werden.

Allgemeine Befehle

Set Set Operation Befehle beginnen im Allgemeinen mit s. Hier sind einige häufig verwendete Befehle:

  • Fügen Sie dem festgelegten Schlüssel ein oder mehrere Elementelemente hinzu und geben Sie die Anzahl der erfolgreichen Ergänzungen zurück. Wenn das Element bereits vorhanden ist, wird es ignoriert
sadd key member1 member2
  • Bestimmen Sie, ob das Elementelement im Set-Schlüssel vorhanden ist
sismember key member
  • Entfernen Sie die Elemente im Set-Schlüssel. Die nicht vorhandenen Elemente werden ignoriert
srem key member1 member2
  • Verschieben Sie das Elementelement von der festgelegten Quelle nach dest. Wenn das Element nicht vorhanden ist, führen Sie nichts aus
smove source dest member
  • Gibt alle Elemente im Auflistungsschlüssel zurück
smembers key

Fügen Sie hier eine Bildbeschreibung ein

4. Sortierte Sets (geordnetes Set)

Der Unterschied zwischen einer geordneten Menge und einer Menge in Redis besteht darin, dass jedes Element in einer geordneten Menge einer Bewertung vom doppelten Typ zugeordnet ist und die Bewertungen dann in aufsteigender Reihenfolge angeordnet werden.

Allgemeine Befehle

Die Operationsbefehle von Sorted Sets beginnen im Allgemeinen mit z. Hier sind einige häufig verwendete Befehle:

  • Fügen Sie dem geordneten Set-Key ein oder mehrere Elemente und seine Punktzahl hinzu
zadd key score1 member1 score2 member2 
  • Gibt die Punktzahl des Mitglieds im bestellten Satzschlüssel zurück
zscore key member
  • Fügen Sie dem Element im geordneten Set-Schlüssel num hinzu. Num kann negativ sein
zincrby key num member 
  • Gibt die Anzahl der Mitglieder zurück, deren Punktzahl im bestellten Set-Schlüssel zwischen min (einschließlich) und max (einschließlich) liegt
zcount key min max
  • Geben Sie alle Mitglieder zwischen Start (einschließlich) und Ende (einschließlich) zurück, nachdem die Punktzahl im geordneten Satzschlüssel von klein nach groß angeordnet wurde
zrange key start stop
  • Geben Sie alle Mitglieder zwischen Start (einschließlich) und Ende (einschließlich) zurück, nachdem die Punktzahl im geordneten Satzschlüssel von groß nach klein angeordnet wurde
zrevrange key start stop 
  • Gibt alle Elemente der Punktzahl von min bis max in der geordneten Menge zurück, sortiert nach Punktzahl von klein bis groß. Beachten Sie, dass der Standardwert das geschlossene Intervall ist. Sie können jedoch hinzufügen (oder [um das Öffnungs- und Schließintervall vor max und min zu steuern)
zrangebyscore key min max
  • Gibt alle Elemente der Punktzahl von max bis min in der geordneten Menge zurück, sortiert nach Punktzahl von der größten zur kleinsten. Beachten Sie, dass der Standardwert das geschlossene Intervall ist. Sie können jedoch hinzufügen (oder [um das Öffnungs- und Schließintervall zu steuern)
zrevrangebyscore key max min
  • Gibt die Rangfolge der Elemente im Element in der geordneten Menge zurück (von klein nach groß), und das zurückgegebene Ergebnis wird aus 0 berechnet
zrank key member 
  • Gibt die Rangfolge der Elemente im Element in der geordneten Menge zurück (von groß nach klein), und das zurückgegebene Ergebnis wird aus 0 berechnet
zrevrank key member
  • Gibt die Anzahl der Mitglieder zwischen min und max im bestellten Satz zurück. Beachten Sie, dass vor min und max in diesem Befehl (oder [zur Steuerung des Öffnungs- und Schließintervalls stehen müssen. Die Sonderwerte-und + stehen für negative Unendlichkeit bzw. positive Unendlichkeit
zlexcount key min max

Fügen Sie hier eine Bildbeschreibung ein

5.Hashes

Was in der Hash-Tabelle gespeichert ist, ist eine Schlüssel- und Wertzuordnungstabelle. Befehle zum Betreiben von Hash-Datentypen beginnen im Allgemeinen mit h.

Allgemeine Befehle

Hier einige Beispiele für häufig verwendete Befehle:

  • Setzen Sie den Wert des Feldfelds im Hash-Tabellenschlüssel auf value
hset key field value #设置单个field
hmset key field1 value1 field2 value2 #设置多个field
  • Setzen Sie den Wert des Feldfelds im Hash-Tabellenschlüssel auf value. Wenn das Feld bereits vorhanden ist, tun Sie nichts
hsetnx key field value
  • Rufen Sie den Wert ab, der dem Feldfeld im Hash-Tabellenschlüssel entspricht
hget key field
  • Rufen Sie den Wert ab, der mehreren Feldern im Hash-Tabellenschlüssel entspricht
hmget key field1 field2
  • Löschen Sie ein oder mehrere Felder im Hash-Tabellenschlüssel
hdel key field1 field2
  • Gibt die Anzahl der Felder im Hash-Tabellenschlüssel zurück
hlen key
  • Fügen Sie das Inkrementinkrement zum Wert des Feldfelds im Hash-Tabellenschlüssel hinzu. Das Inkrement kann eine negative Zahl sein. Wenn das Feld keine Zahl ist, wird ein Fehler gemeldet
hincrby key field increment
  • Fügen Sie dem Wert des Feldfelds im Hash-Tabellenschlüssel ein inkrementelles Inkrement hinzu. Das Inkrement kann eine negative Zahl sein. Wenn das Feld kein Float-Typ ist, wird ein Fehler gemeldet
hincrbyfloat key field increment
  • Fügen Sie das Inkrementinkrement zum Wert des Feldfelds im Hash-Tabellenschlüssel hinzu. Das Inkrement kann eine negative Zahl sein. Wenn das Feld keine Zahl ist, wird ein Fehler gemeldet
hincrby key field increment
  • Holen Sie sich alle Felder im Hash-Tabellenschlüssel
hkeys key
  • Ruft die Werte aller Felder in der Hash-Tabelle ab
hvals key

Fügen Sie hier eine Bildbeschreibung ein

Anwendungsszenario

Der Hash-Typ ist dem String-Typ tatsächlich sehr ähnlich, sodass im Grunde alles, was ein String kann, Hash kann und in einigen Szenarien die Verwendung des Hash-Klassifizierungsspeichers effizienter ist.

6.Bit-Arrays (oder einfach Bitmaps) 位 图

Bitmap Bitmap besteht darin, 0 oder 1 durch das kleinste Einheitsbit zu setzen, das den Wert oder Zustand angibt, der einem Element entspricht, und sein Wert kann nur 0 oder 1 sein, was Ja oder Nein anzeigt. Daher wird dies im Allgemeinen verwendet, um zu zählen, ob Sie sich anmelden, sammeln und andere Alles-oder-Nichts-Daten.

Das Speicherdatenformat lautet beispielsweise im Allgemeinen: 100110000111, wobei 0 und 1 der Bitwert sind und der Bitwert der angegebenen Position (Offset) beim Einstellen festgelegt werden kann.

PS: Die zugrunde liegende Speicherdatenstruktur der Bitmap ist ebenfalls ein Zeichenfolgenobjekt.

Allgemeine Befehle

Der Bitmap-Datentyp enthält hauptsächlich die folgenden Befehle:

  • Setzen oder löschen Sie für den im Schlüssel gespeicherten Zeichenfolgenwert den Bitwert auf dem angegebenen Offset-Offset. Der Offset-Parameter muss größer oder gleich 0 und kleiner als 2 ^ 32 sein (die Bitzuordnung ist auf 512 MB begrenzt).
setbit key offset value
  • Holen Sie sich den Bitwert am angegebenen Offset-Offset
getbit key offset
  • Berechnen Sie die Anzahl der Bits, die in einer bestimmten Zeichenfolge auf 1 gesetzt sind. Anfang und Ende können weggelassen werden, um alle zu zählen. 0 bedeutet die erste Ziffer, -1 bedeutet die letzte Ziffer
bitcount key [start] [end]
  • Gibt die Position des ersten Binärbits in der Bitmap zurück. Start und Ende können weggelassen werden. 0 bedeutet das erste Bit, -1 bedeutet das letzte Bit
bitpos key bit [start] [end]

Fügen Sie hier eine Bildbeschreibung ein

Anwendungsszenario

Dies wird im Allgemeinen in Alles-oder-Nichts-Szenarien verwendet, z. B. ob Sie sich anmelden, den Benutzer behalten, Waren abholen, mögen usw. möchten.

7.HyperLogLogs

HyperLogLog ist eine neu hinzugefügte Datenstruktur, die für Kardinalstatistikalgorithmen in Redis 2.8.9 verwendet wird. Der Vorteil ist, dass bei einer großen Anzahl oder einem sehr großen Volumen von Eingabeelementen der zur Berechnung der Basis erforderliche Platz immer fest und klein ist. Diese Datenstruktur wird im Allgemeinen verwendet, um Informationen wie UV zu zählen.

HyperLogLog selbst ist ein Algorithmus, der aus dem Artikel "HyperLogLog die Analyse eines nahezu optimalen Algorithmus zur Schätzung der Kardinalität" abgeleitet ist. Wenn Sie an diesem Algorithmus interessiert sind, können Sie ihn kennenlernen.

In Redis benötigt jeder HyperLogLog-Schlüssel nur 12 KB Speicher, um die Basis von nahezu 2 ^ 64 verschiedenen Elementen zu berechnen, kann jedoch auch eine Fehlerrate von 0,81% aufweisen.

PS: Die zugrunde liegende Speicherdatenstruktur von HyperLogLogs ist ebenfalls ein Zeichenfolgenobjekt.

Allgemeine Befehle

Dieser Datentyp enthält hauptsächlich die folgenden drei Befehle:

  • Fügen Sie dem Schlüssel im angegebenen HyperLogLog eine beliebige Anzahl von Elementen hinzu
pfadd key element1 element2
  • Holen Sie sich die Kardinalität eines oder mehrerer Schlüssel
pfcount key1 key2
  • Kombinieren Sie mehrere Quellschlüssel zu einem Destkey. Die Kardinalität des kombinierten Destkeys liegt nahe an der Vereinigung aller Quellschlüssel vor dem Zusammenführen
pfmerge destkey sourcekey1 sourcekey2

Fügen Sie hier eine Bildbeschreibung ein
Aus dem Obigen können wir ersehen, dass nach dem Speichern kein Befehl zum Herausnehmen erforderlich ist. Daher wird dieser Befehl im Allgemeinen für Statistiken verwendet und muss in der Lage sein, Fehler zu akzeptieren.

Wenn im obigen Beispiel beispielsweise u1 u2 u3 u4 die Benutzer-ID ist, muss ich nicht beurteilen, solange der Benutzer die Webseite einmal besucht. Ich werde sie einmal speichern und der letzte Wert, der über pfcount abgerufen wird, ist der Wert nach der Deduplizierung (dh der oben genannte) Diese Basis) gibt es zwar einen bestimmten Fehler, aber statistische Daten wie UV sind akzeptabel.

Anwendungsszenario

Dies wird im Allgemeinen in Datenstatistiken verwendet, die Fehlerszenarien akzeptieren können, z. B. UV-Statistiken und andere Szenarien

8.geospatial (geografische Lage)

Geospatial ist eine neue Art von Geospatial-Indexdaten mit Radiusabfrage, die in Redis Version 3.2 hinzugefügt wurde. Wird im Allgemeinen zum Speichern und Berechnen der Entfernung zwischen zwei Orten verwendet.

PS: Die zugrunde liegende Speicherdatenstruktur von HyperLogLogs ist auch eine geordnete Sammlung von Objekten.

Allgemeine Befehle

Hier sind einige häufig verwendete Befehle:

  • Fügen Sie dem angegebenen Schlüssel das angegebene Leerzeichen (Breite, Länge, Name) hinzu. Der gültige Längengrad liegt zwischen -180 Grad und 180 Grad, und der gültige Breitengrad liegt zwischen -85,05112878 Grad und 85,05112878 Grad.
geoadd key longitude latitude member
  • Geben Sie die Position (Längen- und Breitengrad) aller Elemente an der angegebenen Position vom Schlüssel zurück.
geopos key member1 member2
  • Gibt den Abstand zwischen zwei angegebenen Standorten zurück. Die Standardeinheit ist Meter (m), die von Einheit zu Einheit angegeben werden kann. Die Einheit unterstützt die folgenden Typen: Meter (m), Kilometer (km), Meilen (mi), Fuß (ft).
geodist key member1 member2 [unit]
  • Geben Sie mit dem angegebenen Längen- und Breitengrad als Mittelpunkt alle Positionselemente zurück, deren Abstand vom Zentrum den angegebenen maximalen Abstand zwischen den im Schlüssel enthaltenen Positionselementen nicht überschreitet.
georadius key longitude latitude radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]
  • Geben Sie mit dem angegebenen Element als Mittelpunkt alle Positionselemente zurück, deren Abstand vom Zentrum den angegebenen maximalen Abstand zwischen den im Schlüssel enthaltenen Positionselementen nicht überschreitet.
georadiusbymember key member radius m|km|ft|mi [WITHCOORD] [WITHDIST] [WITHHASH] [ASC|DESC] [COUNT count]

Die letzten beiden Befehle sind grundsätzlich gleich, einer dient zum Angeben des Breiten- und Längengrads und der andere zum automatischen Lesen des Breiten- und Längengrads eines Elements. Die Hauptparameter sind wie folgt (das Gerät wird nicht wiederholt):

  • WITHDIST: Beim Zurückgeben des Positionselements wird auch der Abstand zwischen dem Positionselement und der Mitte zurückgegeben. Die Entfernungseinheit stimmt mit der vom Benutzer angegebenen Entfernungseinheit überein.
  • WITHCOORD: Geben Sie den Längen- und Breitengrad des Standortelements zusammen zurück.
  • WITHHASH: Gibt in Form einer 52-Bit-Ganzzahl mit Vorzeichen die geordnete Menge des Positionselements nach dem ursprünglichen Geohash-Code zurück. Diese Option wird hauptsächlich für Anwendungen auf niedriger Ebene oder zum Debuggen verwendet und hat in der Praxis nur geringe Auswirkungen.
  • ASC: Entsprechend der Position des Zentrums wird das Positionselement von nah nach fern zurückgegeben.
  • DESC: Entsprechend der Position des Zentrums wird das Positionselement von weit nach nah zurückgegeben.
  • COUNT: Geben Sie die Anzahl der Retouren an. Dies hat nur geringe Auswirkungen auf die Rechenleistung. Wenn jedoch viele Bereiche zurückgegeben werden, kann durch die Verwendung von count Bandbreite gespart werden

Anwendungsszenario

Dieses Anwendungsszenario ist offensichtlich und wird nur für Szenarien benötigt, in denen der geografische Standort berechnet werden muss.

9.Streams

Streams ist ein Datentyp, der von Redis5.0 eingeführt wurde. Die dauerhafte Nachrichtenwarteschlange, die Multicast unterstützt, wird zum Implementieren der Publish- und Subscribe-Funktion verwendet. Das Design von Streams basiert auf Kafka. Stream ist der komplexeste Datentyp in Redis. Wir werden ihn hier nicht vorstellen. Wenn wir die Verteilungs- / Abonnementfunktion später einführen, werden wir diesen Datentyp und seine leistungsstarke und komplexe Operations-API separat vorstellen.

um zusammenzufassen

In diesem Artikel werden hauptsächlich 9 grundlegende Datentypen in Redis und ihre häufig verwendeten Operationsbefehle und Anwendungsszenarien für die Analyse vorgestellt. Die Datentypen in Redis sind sehr umfangreich. Obwohl der Zeichenfolgentyp in den meisten Fällen in einigen spezifischen Szenarien ausreichend ist Die Verwendung bestimmter Typen wird effizienter und eleganter.

Im nächsten Artikel werden wir die zugrunde liegende Datenstruktur von Datentypen in Redis vorstellen.

Bitte pass auf mich auf und lerne und mache Fortschritte mit dem einsamen Wolf .

Ich denke du magst

Origin blog.csdn.net/zwx900102/article/details/109157375
Empfohlen
Rangfolge