Redis 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