Dieser Artikel vermittelt Ihnen ein tiefgreifendes Verständnis der Datenstrukturen in Redis und zeigt die Anwendungsszenarien dieser Datenstrukturen. Ich hoffe, er wird Ihnen hilfreich sein!
Redis ist ein Schlüsselwertspeichersystem, das in der Sprache ANSI C geschrieben ist. Der Schlüsseltyp ist string. [Verwandte Empfehlungen: Redis Video Tutorial
sortedset(zset) geordneter SatztypStream-Typ
Die String-Funktion von Redis drückt drei Arten von Werten aus: String, Integer, Floating Punktnummer 100.01 ist eine sechsstellige Zeichenfolge.
Schlüsselwert festlegen
Wert abrufen | getset | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
mset | MSET key1 value1 key2 value2 .. keyN valueN | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Werte zu ihren entsprechenden Werten. | mget | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Gibt den Wert aller (eines oder mehrerer) angegebenen Schlüssel zurück | EXPIRE | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Legen Sie die Ablaufzeit (Sekunden) eines Schlüssels fest | appendkey
| append key value||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
strlen | strlen key | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
setnx | setnx key. value | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Schlüsselwert festlegen N P | decrdecr-Taste | die Zahl dekrementieren | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
decrby | decrby-Taste dekrementieren | die angegebene ganze Zahl verringern | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
lpush | lpush-Taste v1 v2 v3... | Liste einfügen von die linke |
---|---|---|
lpop-Taste | Von der linken Seite der Liste herausnehmen | |
rpush-Taste v1 v2 v3... | Von der rechten Seite in die Liste einfügen | |
rpop-Taste | Nehmen Sie es von der rechten Seite der Liste heraus. | |
Auf der linken Seite der Liste können Sie die maximale Blockierungszeit in Sekunden festlegen, wenn die Liste leer ist | lrange key start endGibt die Elemente im angegebenen Intervall in der Liste zurück. Das Intervall wird durch start und end angegeben. | |
lset key index value | Setzt das Element an der Indexposition der Liste auf Der Wert von value | |
rpoplpush key1 key2 | Pop aus der rechten Seite der Liste key1 heraus und fügen Sie ihn in die linke Seite der Liste key2 ein | |
rpushx key | fügt den ein Wert am Ende des Listenwerts | |
blpop-Schlüssel | wird von der rechten Seite der Liste entfernt. Er blockiert, wenn die Liste leer ist. Sie können das maximale Blockierungs-Timeout in Sekunden festlegen | lindex |
Erhalten Sie das Element mit dem tiefgestellten Index in der Liste. Der Index beginnt bei 0. index | ltrim | |
Beschneiden Sie die Liste und behalten Sie nur den Anfangs- bis Endbereich bei end | brpoplpush | |
Poppt von der rechten Seite der Liste „key1“ und fügt es in die linke Seite der Liste „key2“ ein, wodurch key1 key2 blockiert wird Wert | Wert in die Liste beim Wert vor oder nach Pivot einfügen | |
Anwendungsszenarien | 1, Stapel (Stack) =LPUSH + LPOP | |
2, Warteschlange (Warteschlange) =LPUSH + RPOP | 3, Blocking MQ (Blocking queue) = LPUSH + BRPOP | |
4, Benutzerliste, Produktliste, Bewertungsliste | Set-Set-Typ | |
Allgemeine Befehle | ||
Befehlsname | Befehlsformat | Befehlsbeschreibung |
sunion key1 key2 key3 | Finden Sie die Vereinigung mehrerer Mengen |
---|
zadd | ||
---|---|---|
zrem | zrem Key mem1 mem2 .... | |
zcard | zcard key | |
zcount | zcount key min max. | |
zincrby | zincrby Schlüsselinkrementmitglied | |
zscore | zscore Schlüsselmitglied | |
zrank | zrank key member | |
zrange | zrange key start end | |
zrevrank | zrevrank Schlüsselmitglied | |
zrevrange | zrevrange Schlüssel Start Ende | |
Anwendungsszenarien |
Vorteile
hset | ||
---|---|---|
hmset | hmset-Schlüssel Feld1 Wert1 Feld2 Wert2 | |
hget | hget-Schlüsselfeld | |
hmget | hmget Schlüsselfeld1 Feld2... | |
hsetnx | hsetnx-Schlüsselfeldwert | |
hexists | hexist Schlüssel abgelegt | |
hincrby | hincrby Schlüsselfeld inkrementiert | angegebenes Feld automatisch inkrementiert |
hlen | hlen Schlüssel | Erhalten Sie die Anzahl der Felder |
Anwendungsszenario | ||
Objektcache | Warenkorbbedienung | |
Bitmap-Bitmap-Typ | Bitmap führt Bitoperationen aus, um den Wert oder Status eines Elements durch ein Bit darzustellen, und der Schlüssel ist das entsprechende Element selbst. Bitmap selbst spart erheblich Speicherplatz. Allgemeine Befehle bei Offset (kann nur 0 sein oder 1). | ... | Bitpos-Schlüssel value
Führen Sie logische Operationen für mehrere Schlüssel aus und speichern Sie sie. Geben Sie destkey ein
geoadd
geopos | geopos Schlüssel Mitgliedsname 1 Mitgliedsname 2... | Zurück Breiten- und Längengrad des Mitglieds |
---|---|---|
Geodist Schlüsselelement 1 Mitglied 2 Einheit | Entfernung zwischen Mitgliedern berechnen Georadius nach Mitglied | Georadius nach Mitglied Schlüsselelementwert Einheit Anzahl Anzahl aufsteigend |
Geohash | Geohash-Schlüssel Mitgliedsname 1 Mitgliedsname 2... | |
Anwendungsszenario | ||
1. Geografischen Standort aufzeichnen | 2. Entfernung berechnen | 3 . „Personen in der Nähe“ finden |
Stream ist eine neue Datenstruktur, die nach Redis 5.0 hinzugefügt wurde und für persistente Nachrichtenwarteschlangen verwendet wird. | Erfüllt fast alle Anforderungen der Nachrichtenwarteschlange, einschließlich: | Serialisierte Generierung von Nachrichten-IDs |
Blockierendes und nicht blockierendes Lesen von Nachrichten | Gruppenverbrauch von Nachrichten | Verarbeitung unvollendeter Nachrichten |
Einführung in die Programmierung
! !Das obige ist der detaillierte Inhalt vonEingehende Analyse der Datenstruktur in Redis und Gespräch über Anwendungsszenarien. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!