Redis gängige Datentypen und Verwendungsszenarien

ac8147d8309d49578329c254777efc24.jpgRedis unterstützt derzeit 5 Datentypen, nämlich:

 

 

Zeichenfolge (Zeichenfolge)

Liste (Liste)

Hash (Wörterbuch)

Set (Sammlung)

Sortierter Satz (geordnete Sammlung)

Im Folgenden sind die fünf Datentypen und ihre entsprechenden Betriebsbefehle aufgeführt.

 

1. Zeichenfolge (Zeichenfolge)

String ist ein einfaches Schlüssel-Wert-Paar, und der Wert kann nicht nur String, sondern auch Zahlen sein. Die Zeichenfolge wird in Redis standardmäßig als Zeichenfolge gespeichert, auf die von redisObject verwiesen wird. Wenn incr, decr und andere Vorgänge auftreten, wird sie zur Berechnung in einen numerischen Wert konvertiert. Zu diesem Zeitpunkt ist das Codierungsfeld von redisObject int.

 

Die Zeichenfolge wird in Redis standardmäßig als Zeichenfolge gespeichert, auf die von redisObject verwiesen wird. Wenn incr, decr und andere Vorgänge auftreten, wird sie zur Berechnung in einen numerischen Wert konvertiert. Zu diesem Zeitpunkt ist das Codierungsfeld von redisObject int.

 

Anwendungsszenario

String ist der am häufigsten verwendete Datentyp, und die gewöhnliche Schlüssel-/Wertspeicherung kann in diese Kategorie eingeordnet werden, daher werde ich sie hier nicht erklären.

 

Verwandte Befehle

SET-Schlüsselwert setze Schlüssel=Wert

GET-Schlüssel oder der dem Schlüsselschlüssel entsprechende Wert

GETRANGE Schlüsselanfang Ende Ruft einen Teilstring eines in einem Schlüssel gespeicherten Strings ab

GETSET-Schlüsselwert Legt den Zeichenfolgenwert des Schlüssels fest und gibt den alten Wert zurück

GETBIT-Schlüsseloffset Gibt den Offset des im Schlüsselwert gespeicherten Zeichenfolgenwerts zurück

MGET key1 [key2..] Ruft alle Werte für einen bestimmten Schlüssel ab

SETBIT Schlüsseloffsetwert Setzt oder löscht das Bit am Offset des am Schlüssel gespeicherten Zeichenfolgenwerts

SETEX-Schlüsselsekundenwert legt den Wert fest, wenn der Schlüssel abläuft

SETNX-Schlüsselwert Legt den Wert eines Schlüssels fest, nur wenn der Schlüssel nicht existiert

SETRANGE-Schlüsseloffsetwert Überschreibt den Offset eines Teils der Zeichenfolge vom angegebenen Schlüssel

STRLEN-Schlüssel Ermittelt die Länge des im Schlüssel gespeicherten Werts

MSET-Schlüsselwert [Schlüsselwert...] legt mehrere Schlüssel und mehrere Werte fest

MSETNX-Schlüsselwert [Schlüsselwert...] legt mehrere Schlüssel mit mehreren Werten fest, nur wenn kein Schlüssel vorhanden ist

Der Millisekundenwert des PSETEX-Schlüssels legt den Millisekundenwert und die Ablaufzeit des Schlüssels fest

INCR-Taste Erhöht den ganzzahligen Wert des Schlüssels einmal

INCRBY Schlüsselinkrement Erhöht den ganzzahligen Wert des Schlüssels um den angegebenen Betrag

INCRBYFLOAT-Schlüsselinkrement Erhöht den Gleitkommawert des Schlüssels um den angegebenen Betrag

DECR-Taste Dekrementiert den ganzzahligen Wert des Schlüssels einmal

DECRBY Schlüsseldekrement Dekrementiert den ganzzahligen Wert des Schlüssels um die angegebene Zahl

APPEND-Schlüsselwert Wert an einen Schlüssel anhängen

Zu den Befehlen zur Bedienung der Verwaltungstasten gehören unter anderem:

 

Entf-Taste, Löschtaste, falls vorhanden

Der DUMP-Schlüssel gibt eine serialisierte Version des am angegebenen Schlüssel gespeicherten Werts zurück

EXISTS-Schlüssel Dieser Befehl prüft, ob der Schlüssel existiert

EXPIRE-Schlüsselsekunden geben die Ablaufzeit des Schlüssels an

Der Schlüsselzeitstempel EXPIREAT gibt die Ablaufzeit des Schlüssels an. Hier wird die Zeit im Unix-Zeitstempelformat angegeben

Millisekunden des PEXPIRE-Schlüssels Legen Sie fest, dass der Schlüssel in Millisekunden abläuft

PEXPIREAT-Schlüssel Millisekunden-Zeitstempel Legt fest, dass der Schlüssel in Millisekunden abläuft, die im Unix-Zeitstempel angegeben sind

Das KEYS-Muster findet alle Schlüssel, die dem angegebenen Muster entsprechen

MOVE key db Schlüssel in eine andere Datenbank verschieben

PERSIST-Schlüssel: Abgelaufenen Schlüssel entfernen

PTTL-Schlüssel Ruft die verbleibende Zeit bis zum Ablauf des Schlüssels in Millisekunden ab.

TTL-Schlüssel Ruft die verbleibende Zeit bis zum Ablauf des Schlüssels ab.

RANDOMKEY gibt einen zufälligen Schlüssel von Redis zurück

Schlüssel umbenennen, neuer Schlüssel. Den Namen eines Schlüssels ändern

RENAMENX-Schlüssel neuer Schlüssel Schlüssel umbenennen, wenn kein neuer Schlüssel vorhanden ist

Der TYPE-Schlüssel gibt den Wert des am Schlüssel gespeicherten Datentyps zurück.

Anwendungsbeispiel

redis 127.0.0.1:6379> set baidu http://www.baidu

OK

redis 127.0.0.1:6379> baidu .com anhängen

(Ganzzahl) 20

redis 127.0.0.1:6379> Baidu abrufen

„http://www.baidu.com“

redis 127.0.0.1:6379> Besucher auf 0 setzen

OK

redis 127.0.0.1:6379> incr besucher

(Ganzzahl) 1

redis 127.0.0.1:6379> incr besucher

(Ganzzahl) 2

redis 127.0.0.1:6379> Besucher erhalten

„2“

redis 127.0.0.1:6379> incrby Visitors 100

(Ganzzahl) 102

redis 127.0.0.1:6379> Besucher erhalten

„102“

redis 127.0.0.1:6379> Typ Baidu

Zeichenfolge

redis 127.0.0.1:6379> Typ Besucher

Zeichenfolge

redis 127.0.0.1:6379> ttl baidu

(Ganzzahl) -1

redis 127.0.0.1:6379> Baidu Baidu-Site umbenennen

OK

redis 127.0.0.1:6379> Baidu abrufen

(Null)

redis 127.0.0.1:6379> Baidu-Site abrufen

„http://www.baidu.com“

2. Liste (Liste)

Die Redis-Liste ist eine einfache Liste von Zeichenfolgen, die mit std::list in C++ verglichen werden kann. Einfach ausgedrückt handelt es sich um eine verknüpfte Liste oder eine Warteschlange. Elemente können einer Redis-Liste vom Kopf oder vom Ende hinzugefügt werden. Die maximale Länge der Liste beträgt 2^32 - 1, d. h. jede Liste unterstützt mehr als 4 Milliarden Elemente.

 

Die Implementierung der Redis-Liste ist eine doppelt verknüpfte Liste, die die umgekehrte Suche und das Durchlaufen unterstützen kann, was bequemer zu bedienen ist, aber einen gewissen zusätzlichen Speicheraufwand mit sich bringt. Viele interne Implementierungen von Redis, einschließlich der Sendepufferwarteschlangen, verwenden diese Datenstruktur ebenfalls .

 

Anwendungsszenario

Es gibt viele Anwendungsszenarien für die Redis-Liste und sie ist auch eine der wichtigsten Datenstrukturen von Redis. Beispielsweise können die Aufmerksamkeitsliste und die Fanliste von Twitter mithilfe der Redis-Listenstruktur realisiert werden. Beispielsweise verwenden einige Anwendungen den Redis-Listentyp um eine einfache Lightweight-Nachrichtenwarteschlange, Producer Push, Consumer Pop/Bpop zu implementieren.

 

Verwandte Befehle

BLPOP

BLPOP key1 [key2 ] timeout fetch und das erste Element in der Liste abrufen oder blockieren, bis eines verfügbar ist

BRPOP

BRPOP key1 [key2 ] timeout fetch und das letzte Element in der Liste abrufen oder blockieren, bis eines verfügbar ist

BRPOPLPUSH

BRPOPLPUSH Quell-Ziel-Timeout entfernt einen Wert aus einer Liste, verschiebt ihn in eine andere Liste und gibt ihn zurück; oder blockiert, bis einer verfügbar ist

LINDEX

LINDEX-Schlüsselindex Holen Sie sich das entsprechende Element aus dem Index einer Liste

LINSE

Der LINSERT-Schlüssel BEFORE|AFTER Pivot-Wert fügt ein Element nach oder vor anderen Elementen in der Liste ein

VORHANG

LLEN-Taste Ermittelt die Länge der Liste

LPOP

LPOP-Schlüssel Ruft das erste Element in der Liste ab und entnimmt es

LPUSH

LPUSH-Schlüsselwert1 [Wert2] Eine Liste mit einem oder mehreren Werten voranstellen

LPUSHX

Der LPUSHX-Schlüsselwert stellt eine Liste von Werten voran, sofern diese in der Liste vorhanden sind

LRANGE

LRANGE-Taste Start Stop ruft verschiedene Elemente aus einer Liste ab

LREM

Der LREM-Schlüsselanzahlwert entfernt Elemente aus der Liste

LSET

LSET-Schlüsselindexwert Der Index in der Liste zum Festlegen des Werts eines Elements

LTRIM

LTRIM-Taste Start Stopp Liste auf den angegebenen Bereich kürzen

RPOP

Geben Sie den RPOP-Schlüssel ein und holen Sie sich das letzte Element in der Liste

RPOPLPUSH

RPOPLPUSH Quelle Ziel entfernt das letzte Element einer Liste, hängt es an eine andere Liste an und gibt es zurück

RPush

RPUSH-Schlüsselwert1 [Wert2] Fügt der Liste einen oder mehrere Werte hinzu

RPUSHX

RPUSHX-Schlüsselwert Eine Werteliste hinzufügen, nur wenn die Liste vorhanden ist

Anwendungsbeispiel

redis 127.0.0.1:6379> lpush list1 redis

(Ganzzahl) 1

redis 127.0.0.1:6379> lpush list1 Hallo

(Ganzzahl) 2

redis 127.0.0.1:6379> rpush list1 world

(Ganzzahl) 3

redis 127.0.0.1:6379> llen list1

(Ganzzahl) 3

redis 127.0.0.1:6379> lrange list1 0 3

1) „Hallo“

2) „Redis“

3) „Welt“

redis 127.0.0.1:6379> lpop list1

"Hallo"

redis 127.0.0.1:6379> rpop list1

"Welt"

redis 127.0.0.1:6379> lrange list1 0 3

1) „redis“

3. Hash (Wörterbuch, Hash-Tabelle)

Ähnlich dem Typ dict in C# oder dem Typ hash_map in C++.

 

Redis Hash ist eigentlich eine HashMap, die Value entspricht. Tatsächlich gibt es hier zwei verschiedene Implementierungen: Wenn die Mitglieder dieses Hash relativ klein sind, verwendet Redis eine eindimensionale Array-ähnliche Methode zur kompakten Speicherung, um Speicher zu sparen. Anstatt eine echte HashMap-Struktur zu verwenden. Die Codierung des entsprechenden Werts redisObject ist zipmap. Wenn die Anzahl der Mitglieder zunimmt, wird sie automatisch in eine echte HashMap konvertiert. Zu diesem Zeitpunkt ist die Codierung ht.

 

Anwendungsszenario

Unter der Annahme, dass mehrere Benutzer und entsprechende Benutzerinformationen vorhanden sind, kann damit die Benutzer-ID als Schlüssel gespeichert und die Benutzerinformationen beispielsweise im JSON-Format als Wert für die Speicherung serialisiert werden.

 

Verwandte Befehle

HDEL

HDEL-Schlüsselfeld[Feld...] Löschen Sie ein oder mehrere Attributfelder des Objekts. Nicht vorhandene Attribute werden ignoriert

HEXISTEN

HEXISTS-Schlüsselfeld Prüfen Sie, ob das Objekt im Feld vorhanden ist

HGET

HGET-Schlüsselfeld Ruft den Wert des Feldattributfelds im Objekt ab

HGETALL

HGETALL-Schlüssel Ruft alle Attributfelder und Werte des Objekts ab

HINCRBY

HINCRBY-Schlüsselfeldwert Erhöhen Sie den Wert des angegebenen Felds im Objekt um den angegebenen Wert, atomare automatische Inkrementierungsoperation, es können nur ganzzahlige Attributwerte verwendet werden

HINCRBYFLOAT

HINCRBYFLOAT-Schlüsselfeldinkrement Erhöhen Sie den Wert des angegebenen Felds im Objekt um die angegebene Gleitkommazahl

HKEYS

HKEYS-Schlüssel Ruft alle Attributfelder des Objekts ab

WALE

HVALS-Schlüssel Ruft alle Attributwerte des Objekts ab

HLEN

HLEN-Schlüssel Ruft die Gesamtzahl aller Attributfelder des Objekts ab

HMGET

HMGET-Schlüsselfeld[Feld...] Ruft den Wert eines oder mehrerer angegebener Felder des Objekts ab

HSET

HSET-Schlüsselfeldwert Legt den Wert des angegebenen Felds des Objekts fest

HMSET

HMSET-Schlüsselfeldwert [Feldwert ...] Legen Sie den Wert eines oder mehrerer Felder im Objekt gleichzeitig fest

HSETNX

Der HSETNX-Schlüsselfeldwert legt den Wert des Feldes nur fest, wenn das angegebene Feld nicht im Objekt vorhanden ist

HSTRLEN

HSTRLEN-Schlüsselfeld Gibt die Zeichenfolgenlänge des Werts des angegebenen Felds des Objekts zurück. Wenn das Objekt oder Feld nicht vorhanden ist, wird 0 zurückgegeben.

HSCAN

HSCAN-Tastencursor [MATCH-Muster] [COUNT-Anzahl] Ähnlich dem SCAN-Befehl

Anwendungsbeispiel

127.0.0.1:637

Ich denke du magst

Origin blog.csdn.net/weixin_57763462/article/details/131906817
Empfohlen
Rangfolge