Redis - Kurzanleitung
Redis ist ein Open Source-Speicher für erweiterte Schlüsselwerte und eine geeignete Lösung für die Erstellung leistungsstarker, skalierbarer Webanwendungen.
Redis hat drei Hauptmerkmale, die es auszeichnen.
Redis hält seine Datenbank vollständig im Speicher und verwendet die Festplatte nur für die Persistenz.
Redis verfügt im Vergleich zu vielen Schlüsselwert-Datenspeichern über einen relativ umfangreichen Datensatz.
Redis kann Daten auf eine beliebige Anzahl von Slaves replizieren.
Redis Vorteile
Im Folgenden sind einige Vorteile von Redis aufgeführt.
Exceptionally fast - Redis ist sehr schnell und kann ungefähr 110000 SETs pro Sekunde ausführen, ungefähr 81000 GETs pro Sekunde.
Supports rich data types- Redis unterstützt nativ die meisten Datentypen, die Entwickler bereits kennen, wie z. B. Liste, Menge, sortierte Menge und Hashes. Dies macht es einfach, eine Vielzahl von Problemen zu lösen, da wir wissen, welches Problem mit welchem Datentyp besser behandelt werden kann.
Operations are atomic - Alle Redis-Vorgänge sind atomar. Dadurch wird sichergestellt, dass der Redis-Server den aktualisierten Wert erhält, wenn zwei Clients gleichzeitig darauf zugreifen.
Multi-utility tool - Redis ist ein Multi-Utility-Tool und kann in einer Reihe von Anwendungsfällen wie Caching, Messaging-Warteschlangen (Redis unterstützt nativ Publish / Subscribe) und kurzlebigen Daten in Ihrer Anwendung verwendet werden, z. B. Webanwendungssitzungen oder Web Seitenzugriffszahlen usw.
Redis versus andere Schlüsselwertspeicher
Redis ist ein anderer Entwicklungspfad in den Schlüsselwert-DBs, in denen Werte komplexere Datentypen enthalten können, wobei für diese Datentypen atomare Operationen definiert sind.
Redis ist eine speicherinterne Datenbank, die jedoch auf der Festplattendatenbank persistent ist. Daher stellt sie einen anderen Kompromiss dar, bei dem eine sehr hohe Schreib- und Lesegeschwindigkeit erreicht wird, wobei Datensätze begrenzt werden, die nicht größer als der Speicher sein können.
Ein weiterer Vorteil von In-Memory-Datenbanken besteht darin, dass die Speicherdarstellung komplexer Datenstrukturen im Vergleich zu derselben Datenstruktur auf der Festplatte viel einfacher zu manipulieren ist. Somit kann Redis mit wenig interner Komplexität viel erreichen.
In diesem Kapitel erfahren Sie mehr über die Umgebungseinstellungen für Redis.
Installieren Sie Redis unter Ubuntu
Um Redis unter Ubuntu zu installieren, gehen Sie zum Terminal und geben Sie die folgenden Befehle ein:
$sudo apt-get update $sudo apt-get install redis-server
Dadurch wird Redis auf Ihrem Computer installiert.
Starten Sie Redis
$redis-server
Überprüfen Sie, ob Redis funktioniert
$redis-cli
Dies öffnet eine Redis-Eingabeaufforderung.
redis 127.0.0.1:6379>
In der obigen Eingabeaufforderung 127.0.0.1 ist die IP-Adresse Ihres Computers und 6379ist der Port, auf dem der Redis-Server ausgeführt wird. Geben Sie nun Folgendes einPING Befehl.
redis 127.0.0.1:6379> ping
PONG
Dies zeigt, dass Redis erfolgreich auf Ihrem Computer installiert wurde.
Installieren Sie Redis Desktop Manager unter Ubuntu
Um den Redis Desktop Manager unter Ubuntu zu installieren, laden Sie einfach das Paket von herunter https://redisdesktop.com/download
Öffnen Sie das heruntergeladene Paket und installieren Sie es.
Mit dem Redis Desktop Manager erhalten Sie eine Benutzeroberfläche zum Verwalten Ihrer Redis-Schlüssel und -Daten.
In Redis ist eine Konfigurationsdatei (redis.conf) im Stammverzeichnis von Redis verfügbar. Obwohl Sie alle Redis-Konfigurationen von Redis erhalten und einstellen könnenCONFIG Befehl.
Syntax
Es folgt die grundlegende Syntax von Redis CONFIG Befehl.
redis 127.0.0.1:6379> CONFIG GET CONFIG_SETTING_NAME
Beispiel
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
Verwenden Sie * anstelle von CONFIG_SETTING_NAME, um alle Konfigurationseinstellungen abzurufen
Beispiel
redis 127.0.0.1:6379> CONFIG GET *
1) "dbfilename"
2) "dump.rdb"
3) "requirepass"
4) ""
5) "masterauth"
6) ""
7) "unixsocket"
8) ""
9) "logfile"
10) ""
11) "pidfile"
12) "/var/run/redis.pid"
13) "maxmemory"
14) "0"
15) "maxmemory-samples"
16) "3"
17) "timeout"
18) "0"
19) "tcp-keepalive"
20) "0"
21) "auto-aof-rewrite-percentage"
22) "100"
23) "auto-aof-rewrite-min-size"
24) "67108864"
25) "hash-max-ziplist-entries"
26) "512"
27) "hash-max-ziplist-value"
28) "64"
29) "list-max-ziplist-entries"
30) "512"
31) "list-max-ziplist-value"
32) "64"
33) "set-max-intset-entries"
34) "512"
35) "zset-max-ziplist-entries"
36) "128"
37) "zset-max-ziplist-value"
38) "64"
39) "hll-sparse-max-bytes"
40) "3000"
41) "lua-time-limit"
42) "5000"
43) "slowlog-log-slower-than"
44) "10000"
45) "latency-monitor-threshold"
46) "0"
47) "slowlog-max-len"
48) "128"
49) "port"
50) "6379"
51) "tcp-backlog"
52) "511"
53) "databases"
54) "16"
55) "repl-ping-slave-period"
56) "10"
57) "repl-timeout"
58) "60"
59) "repl-backlog-size"
60) "1048576"
61) "repl-backlog-ttl"
62) "3600"
63) "maxclients"
64) "4064"
65) "watchdog-period"
66) "0"
67) "slave-priority"
68) "100"
69) "min-slaves-to-write"
70) "0"
71) "min-slaves-max-lag"
72) "10"
73) "hz"
74) "10"
75) "no-appendfsync-on-rewrite"
76) "no"
77) "slave-serve-stale-data"
78) "yes"
79) "slave-read-only"
80) "yes"
81) "stop-writes-on-bgsave-error"
82) "yes"
83) "daemonize"
84) "no"
85) "rdbcompression"
86) "yes"
87) "rdbchecksum"
88) "yes"
89) "activerehashing"
90) "yes"
91) "repl-disable-tcp-nodelay"
92) "no"
93) "aof-rewrite-incremental-fsync"
94) "yes"
95) "appendonly"
96) "no"
97) "dir"
98) "/home/deepak/Downloads/redis-2.8.13/src"
99) "maxmemory-policy"
100) "volatile-lru"
101) "appendfsync"
102) "everysec"
103) "save"
104) "3600 1 300 100 60 10000"
105) "loglevel"
106) "notice"
107) "client-output-buffer-limit"
108) "normal 0 0 0 slave 268435456 67108864 60 pubsub 33554432 8388608 60"
109) "unixsocketperm"
110) "0"
111) "slaveof"
112) ""
113) "notify-keyspace-events"
114) ""
115) "bind"
116) ""
Konfiguration bearbeiten
Um die Konfiguration zu aktualisieren, können Sie sie bearbeiten redis.conf Datei direkt oder Sie können Konfigurationen über aktualisieren CONFIG set Befehl.
Syntax
Es folgt die grundlegende Syntax von CONFIG SET Befehl.
redis 127.0.0.1:6379> CONFIG SET CONFIG_SETTING_NAME NEW_CONFIG_VALUE
Beispiel
redis 127.0.0.1:6379> CONFIG SET loglevel "notice"
OK
redis 127.0.0.1:6379> CONFIG GET loglevel
1) "loglevel"
2) "notice"
Redis unterstützt 5 Arten von Datentypen.
Saiten
Redis-String ist eine Folge von Bytes. Strings in Redis sind binär sicher, dh sie haben eine bekannte Länge, die nicht durch spezielle Abschlusszeichen bestimmt wird. Somit können Sie alles bis zu 512 Megabyte in einer Zeichenfolge speichern.
Beispiel
redis 127.0.0.1:6379> SET name "tutorialspoint"
OK
redis 127.0.0.1:6379> GET name
"tutorialspoint"
Im obigen Beispiel ist SET und GET sind Redis-Befehle, name ist der in Redis und verwendete Schlüssel tutorialspoint ist der Zeichenfolgenwert, der in Redis gespeichert ist.
Note - Ein Zeichenfolgenwert kann maximal 512 Megabyte lang sein.
Hashes
Ein Redis-Hash ist eine Sammlung von Schlüsselwertpaaren. Redis Hashes sind Zuordnungen zwischen Zeichenfolgenfeldern und Zeichenfolgenwerten. Daher werden sie zur Darstellung von Objekten verwendet.
Beispiel
redis 127.0.0.1:6379> HMSET user:1 username tutorialspoint password
tutorialspoint points 200
OK
redis 127.0.0.1:6379> HGETALL user:1
1) "username"
2) "tutorialspoint"
3) "password"
4) "tutorialspoint"
5) "points"
6) "200"
Im obigen Beispiel wird der Hash-Datentyp verwendet, um das Objekt des Benutzers zu speichern, das grundlegende Informationen des Benutzers enthält. HierHMSET, HGETALL sind Befehle für Redis, während user − 1 ist der Schlüssel.
Jeder Hash kann bis zu 2 32 - 1 Feldwertpaare (mehr als 4 Milliarden) speichern .
Listen
Redis-Listen sind einfach Listen von Zeichenfolgen, sortiert nach Einfügereihenfolge. Sie können einer Redis-Liste am Kopf oder am Ende Elemente hinzufügen.
Beispiel
redis 127.0.0.1:6379> lpush tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> lpush tutoriallist mongodb
(integer) 2
redis 127.0.0.1:6379> lpush tutoriallist rabitmq
(integer) 3
redis 127.0.0.1:6379> lrange tutoriallist 0 10
1) "rabitmq"
2) "mongodb"
3) "redis"
Die maximale Länge einer Liste beträgt 2 32 - 1 Elemente (4294967295, mehr als 4 Milliarden Elemente pro Liste).
Sets
Redis-Sets sind eine ungeordnete Sammlung von Zeichenfolgen. In Redis können Sie Mitglieder in O (1) -Zeitkomplexität hinzufügen, entfernen und auf ihre Existenz testen.
Beispiel
redis 127.0.0.1:6379> sadd tutoriallist redis
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist mongodb
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist rabitmq
(integer) 1
redis 127.0.0.1:6379> sadd tutoriallist rabitmq
(integer) 0
redis 127.0.0.1:6379> smembers tutoriallist
1) "rabitmq"
2) "mongodb"
3) "redis"
Note - Im obigen Beispiel rabitmq wird zweimal hinzugefügt, wird jedoch aufgrund der eindeutigen Eigenschaft des Satzes nur einmal hinzugefügt.
Die maximale Anzahl von Mitgliedern in einem Satz beträgt 2 32 - 1 (4294967295, mehr als 4 Milliarden Mitglieder pro Satz).
Sortierte Sets
Redis Sorted Sets ähneln Redis Sets, nicht wiederholten Stringsammlungen. Der Unterschied besteht darin, dass jedem Mitglied eines sortierten Satzes eine Punktzahl zugeordnet ist, die verwendet wird, um die geordnete sortierte Menge von der kleinsten zur größten Punktzahl zu bringen. Während die Mitglieder einzigartig sind, können die Ergebnisse wiederholt werden.
Beispiel
redis 127.0.0.1:6379> zadd tutoriallist 0 redis
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 mongodb
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq
(integer) 1
redis 127.0.0.1:6379> zadd tutoriallist 0 rabitmq
(integer) 0
redis 127.0.0.1:6379> ZRANGEBYSCORE tutoriallist 0 1000
1) "redis"
2) "mongodb"
3) "rabitmq"
Redis-Befehle werden verwendet, um einige Vorgänge auf dem Redis-Server auszuführen.
Um Befehle auf dem Redis-Server auszuführen, benötigen Sie einen Redis-Client. Der Redis-Client ist im Redis-Paket verfügbar, das wir zuvor installiert haben.
Syntax
Im Folgenden finden Sie die grundlegende Syntax des Redis-Clients.
$redis-cli
Beispiel
Das folgende Beispiel erklärt, wie wir den Redis-Client starten können.
Öffnen Sie zum Starten des Redis-Clients das Terminal und geben Sie den Befehl ein redis-cli. Dadurch wird eine Verbindung zu Ihrem lokalen Server hergestellt, und Sie können jetzt einen beliebigen Befehl ausführen.
$redis-cli
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING
PONG
Im obigen Beispiel stellen wir eine Verbindung zum Redis-Server her, der auf dem lokalen Computer ausgeführt wird, und führen einen Befehl aus PING, das prüft, ob der Server läuft oder nicht.
Führen Sie Befehle auf dem Remote-Server aus
Um Befehle auf dem Redis-Remoteserver auszuführen, müssen Sie über denselben Client eine Verbindung zum Server herstellen redis-cli
Syntax
$ redis-cli -h host -p port -a password
Beispiel
Das folgende Beispiel zeigt, wie eine Verbindung zum Redis-Remoteserver hergestellt wird, der auf Host 127.0.0.1, Port 6379 ausgeführt wird und über das Kennwort mypass verfügt.
$redis-cli -h 127.0.0.1 -p 6379 -a "mypass"
redis 127.0.0.1:6379>
redis 127.0.0.1:6379> PING
PONG
Redis-Schlüsselbefehle werden zum Verwalten von Schlüsseln in Redis verwendet. Im Folgenden finden Sie die Syntax für die Verwendung von Redis Keys-Befehlen.
Syntax
redis 127.0.0.1:6379> COMMAND KEY_NAME
Beispiel
redis 127.0.0.1:6379> SET tutorialspoint redis
OK
redis 127.0.0.1:6379> DEL tutorialspoint
(integer) 1
Im obigen Beispiel ist DEL ist der Befehl, während tutorialspointist der Schlüssel. Wenn der Schlüssel gelöscht wird, ist die Ausgabe des Befehls (Ganzzahl) 1, andernfalls (Ganzzahl) 0.
Redis Keys Befehle
In der folgenden Tabelle sind einige grundlegende Befehle für Schlüssel aufgeführt.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | ENTF-Taste Dieser Befehl löscht den Schlüssel, falls vorhanden. |
2 | DUMP-Taste Dieser Befehl gibt eine serialisierte Version des am angegebenen Schlüssel gespeicherten Werts zurück. |
3 | EXISTS-Schlüssel Dieser Befehl prüft, ob der Schlüssel vorhanden ist oder nicht. |
4 | EXPIRE-Taste Sekunden Legt den Ablauf des Schlüssels nach der angegebenen Zeit fest. |
5 | EXPIREAT-Schlüsselzeitstempel Legt den Ablauf des Schlüssels nach der angegebenen Zeit fest. Hier ist die Zeit im Unix-Zeitstempelformat. |
6 | Millisekunden des PEXPIRE-Schlüssels Stellen Sie den Ablauf des Schlüssels in Millisekunden ein. |
7 | PEXPIREAT-Schlüssel Millisekunden-Zeitstempel Legt den Ablauf des Schlüssels im Unix-Zeitstempel fest, der als Millisekunden angegeben wird. |
8 | Schlüsselmuster Findet alle Schlüssel, die dem angegebenen Muster entsprechen. |
9 | MOVE-Taste db Verschiebt einen Schlüssel in eine andere Datenbank. |
10 | PERSIST-Taste Entfernt den Ablauf vom Schlüssel. |
11 | PTTL-Taste Ruft die verbleibende Zeit für den Ablauf der Schlüssel in Millisekunden ab. |
12 | TTL-Taste Ruft die verbleibende Zeit nach Ablauf der Schlüssel ab. |
13 | RANDOMKEY Gibt einen zufälligen Schlüssel von Redis zurück. |
14 | Schlüssel neu benennen Ändert den Schlüsselnamen. |
15 | RENAMENX-Schlüssel neu Benennt den Schlüssel um, wenn kein neuer Schlüssel vorhanden ist. |
16 | TYPE-Taste Gibt den Datentyp des im Schlüssel gespeicherten Werts zurück. |
Redis-Zeichenfolgenbefehle werden zum Verwalten von Zeichenfolgenwerten in Redis verwendet. Im Folgenden finden Sie die Syntax für die Verwendung von Redis-Zeichenfolgenbefehlen.
Syntax
redis 127.0.0.1:6379> COMMAND KEY_NAME
Beispiel
redis 127.0.0.1:6379> SET tutorialspoint redis
OK
redis 127.0.0.1:6379> GET tutorialspoint
"redis"
Im obigen Beispiel ist SET und GET sind die Befehle, während tutorialspoint ist der Schlüssel.
Redis Strings-Befehle
In der folgenden Tabelle sind einige grundlegende Befehle zum Verwalten von Zeichenfolgen in Redis aufgeführt.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | SET Schlüsselwert Dieser Befehl setzt den Wert auf den angegebenen Schlüssel. |
2 | GET-Schlüssel Ruft den Wert eines Schlüssels ab. |
3 | GETRANGE Schlüssel Start Ende Ruft eine Teilzeichenfolge der Zeichenfolge ab, die an einem Schlüssel gespeichert ist. |
4 | GETSET-Schlüsselwert Legt den Zeichenfolgenwert eines Schlüssels fest und gibt seinen alten Wert zurück. |
5 | GETBIT-Tastenoffset Gibt den Bitwert am Offset in dem auf dem Schlüssel gespeicherten Zeichenfolgenwert zurück. |
6 | MGET-Taste1 [Taste2 ..] Ruft die Werte aller angegebenen Schlüssel ab |
7 | SETBIT-Schlüsselversatzwert Setzt oder löscht das Bit am Versatz in dem auf dem Schlüssel gespeicherten Zeichenfolgenwert |
8 | Sekundenwert der SETEX-Taste Legt den Wert mit dem Ablauf eines Schlüssels fest |
9 | SETNX-Schlüsselwert Legt den Wert eines Schlüssels nur fest, wenn der Schlüssel nicht vorhanden ist |
10 | SETRANGE-Schlüsselversatzwert Überschreibt den Teil einer Zeichenfolge am Schlüssel ab dem angegebenen Versatz |
11 | STRLEN-Taste Ruft die Länge des in einem Schlüssel gespeicherten Werts ab |
12 | MSET-Schlüsselwert [Schlüsselwert ...] Setzt mehrere Schlüssel auf mehrere Werte |
13 | MSETNX-Schlüsselwert [Schlüsselwert ...] Setzt mehrere Schlüssel auf mehrere Werte, nur wenn keiner der Schlüssel vorhanden ist |
14 | PSETEX-Schlüssel Millisekundenwert Legt den Wert und das Ablaufdatum eines Schlüssels in Millisekunden fest |
15 | INCR-Taste Erhöht den ganzzahligen Wert eines Schlüssels um eins |
16 | INCRBY-Schlüsselinkrement Erhöht den ganzzahligen Wert eines Schlüssels um den angegebenen Betrag |
17 | INCRBYFLOAT-Schlüsselinkrement Erhöht den Float-Wert eines Schlüssels um den angegebenen Betrag |
18 | DECR-Taste Verringert den ganzzahligen Wert eines Schlüssels um eins |
19 | DECRBY-Schlüsseldekrement Verringert den ganzzahligen Wert eines Schlüssels um die angegebene Zahl |
20 | APPEND Schlüsselwert Hängt einen Wert an einen Schlüssel an |
Redis Hashes sind Zuordnungen zwischen den Zeichenfolgenfeldern und den Zeichenfolgenwerten. Daher sind sie der perfekte Datentyp zur Darstellung von Objekten.
In Redis kann jeder Hash bis zu 4 Milliarden Feldwertpaare speichern.
Beispiel
redis 127.0.0.1:6379> HMSET tutorialspoint name "redis tutorial"
description "redis basic commands for caching" likes 20 visitors 23000
OK
redis 127.0.0.1:6379> HGETALL tutorialspoint
1) "name"
2) "redis tutorial"
3) "description"
4) "redis basic commands for caching"
5) "likes"
6) "20"
7) "visitors"
8) "23000"
Im obigen Beispiel haben wir die Details der Redis-Tutorials (Name, Beschreibung, Likes, Besucher) im Hash "Tutorialspoint" festgelegt.
Redis Hash-Befehle
In der folgenden Tabelle sind einige grundlegende Befehle aufgeführt, die sich auf Hash beziehen.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | HDEL-Taste Feld2 [Feld2] Löscht ein oder mehrere Hash-Felder. |
2 | HEXISTS-Schlüsselfeld Legt fest, ob ein Hash-Feld vorhanden ist oder nicht. |
3 | HGET-Schlüsselfeld Ruft den Wert eines Hash-Felds ab, das am angegebenen Schlüssel gespeichert ist. |
4 | HGETALL-Taste Ruft alle Felder und Werte ab, die in einem Hash am angegebenen Schlüssel gespeichert sind |
5 | HINCRBY-Schlüsselfeldinkrement Erhöht den ganzzahligen Wert eines Hash-Feldes um die angegebene Zahl |
6 | HINCRBYFLOAT-Schlüsselfeldinkrement Erhöht den Float-Wert eines Hash-Felds um den angegebenen Betrag |
7 | HKEYS-Schlüssel Ruft alle Felder in einem Hash ab |
8 | HLEN-Taste Ruft die Anzahl der Felder in einem Hash ab |
9 | HMGET-Schlüsselfeld1 [Feld2] Ruft die Werte aller angegebenen Hash-Felder ab |
10 | HMSET-Schlüssel Feld1 Wert1 [Feld2 Wert2] Setzt mehrere Hash-Felder auf mehrere Werte |
11 | HSET-Schlüsselfeldwert Legt den Zeichenfolgenwert eines Hash-Felds fest |
12 | HSETNX-Schlüsselfeldwert Legt den Wert eines Hash-Felds nur fest, wenn das Feld nicht vorhanden ist |
13 | HVALS-Schlüssel Ruft alle Werte in einem Hash ab |
14 | HSCAN-Tastencursor [MATCH-Muster] [COUNT count] Inkrementiert iteriert Hash-Felder und zugehörige Werte |
Redis-Listen sind einfach Listen von Zeichenfolgen, sortiert nach Einfügereihenfolge. Sie können Elemente in Redis-Listen am Kopf oder am Ende der Liste hinzufügen.
Die maximale Länge einer Liste beträgt 2 32 - 1 Elemente (4294967295, mehr als 4 Milliarden Elemente pro Liste).
Beispiel
redis 127.0.0.1:6379> LPUSH tutorials redis
(integer) 1
redis 127.0.0.1:6379> LPUSH tutorials mongodb
(integer) 2
redis 127.0.0.1:6379> LPUSH tutorials mysql
(integer) 3
redis 127.0.0.1:6379> LRANGE tutorials 0 10
1) "mysql"
2) "mongodb"
3) "redis"
Im obigen Beispiel werden drei Werte mit dem Befehl 'tutorials' in die Redis-Liste eingefügt LPUSH.
Redis listet Befehle auf
In der folgenden Tabelle sind einige grundlegende Befehle aufgeführt, die sich auf Listen beziehen.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | Zeitüberschreitung für BLPOP-Taste1 [Taste2] Entfernt das erste Element in einer Liste und blockiert es, bis eines verfügbar ist |
2 | Zeitüberschreitung für BRPOP-Taste1 [Taste2] Entfernt das letzte Element in einer Liste und blockiert es, bis eines verfügbar ist |
3 | Zeitlimit für BRPOPLPUSH-Quellziel Öffnet einen Wert aus einer Liste, verschiebt ihn in eine andere Liste und gibt ihn zurück. oder blockiert, bis einer verfügbar ist |
4 | LINDEX-Schlüsselindex Ruft ein Element anhand seines Index aus einer Liste ab |
5 | LINSERT-Taste VOR | NACH dem Pivot-Wert Fügt ein Element vor oder nach einem anderen Element in eine Liste ein |
6 | LLEN-Schlüssel Ruft die Länge einer Liste ab |
7 | LPOP-Schlüssel Entfernt das erste Element in einer Liste und ruft es ab |
8 | LPUSH-Schlüssel value1 [value2] Stellt einer Liste einen oder mehrere Werte voran |
9 | LPUSHX-Schlüsselwert Stellt einer Liste nur dann einen Wert voran, wenn die Liste vorhanden ist |
10 | Startstopp der LRANGE-Taste Ruft eine Reihe von Elementen aus einer Liste ab |
11 | LREM-Schlüsselzählwert Entfernt Elemente aus einer Liste |
12 | LSET-Schlüsselindexwert Legt den Wert eines Elements in einer Liste anhand seines Index fest |
13 | Startstopp der LTRIM-Taste Schneidet eine Liste auf den angegebenen Bereich ab |
14 | RPOP-Taste Entfernt das letzte Element in einer Liste und ruft es ab |
15 | RPOPLPUSH-Quellziel Entfernt das letzte Element in einer Liste, hängt es an eine andere Liste an und gibt es zurück |
16 | RPUSH-Schlüssel Wert1 [Wert2] Hängt einen oder mehrere Werte an eine Liste an |
17 | RPUSHX-Schlüsselwert Hängt einen Wert an eine Liste an, nur wenn die Liste vorhanden ist |
Redis-Sets sind eine ungeordnete Sammlung eindeutiger Zeichenfolgen. Eindeutige Mittelwerte erlauben keine Wiederholung von Daten in einem Schlüssel.
In Redis Set hinzufügen, entfernen und auf die Existenz von Elementen in O (1) testen (konstante Zeit unabhängig von der Anzahl der im Set enthaltenen Elemente). Die maximale Länge einer Liste beträgt 2 32 - 1 Elemente (4294967295, mehr als 4 Milliarden Elemente pro Satz).
Beispiel
redis 127.0.0.1:6379> SADD tutorials redis
(integer) 1
redis 127.0.0.1:6379> SADD tutorials mongodb
(integer) 1
redis 127.0.0.1:6379> SADD tutorials mysql
(integer) 1
redis 127.0.0.1:6379> SADD tutorials mysql
(integer) 0
redis 127.0.0.1:6379> SMEMBERS tutorials
1) "mysql"
2) "mongodb"
3) "redis"
Im obigen Beispiel werden vom Befehl drei Werte in den Redis-Satz mit dem Namen 'tutorials' eingefügt SADD.
Redis legt Befehle fest
In der folgenden Tabelle sind einige grundlegende Befehle aufgeführt, die sich auf Mengen beziehen.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | SADD-Schlüssel member1 [member2] Fügt einem Satz ein oder mehrere Mitglieder hinzu |
2 | SCARD-Taste Ruft die Anzahl der Mitglieder in einem Satz ab |
3 | SDIFF-Taste1 [Taste2] Subtrahiert mehrere Sätze |
4 | SDIFFSTORE-Zielschlüssel1 [Schlüssel2] Subtrahiert mehrere Sätze und speichert den resultierenden Satz in einem Schlüssel |
5 | SINTER key1 [key2] Schneidet mehrere Sätze |
6 | SINTERSTORE-Zielschlüssel1 [Schlüssel2] Schneidet mehrere Sätze und speichert den resultierenden Satz in einem Schlüssel |
7 | SISMEMBER Schlüsselmitglied Bestimmt, ob ein bestimmter Wert Mitglied einer Menge ist |
8 | SMEMBERS-Schlüssel Ruft alle Mitglieder eines Sets ab |
9 | SMOVE Quellzielmitglied Verschiebt ein Mitglied von einem Satz zu einem anderen |
10 | SPOP-Taste Entfernt ein zufälliges Mitglied aus einem Satz und gibt es zurück |
11 | SRANDMEMBER-Taste [Anzahl] Ruft ein oder mehrere zufällige Mitglieder aus einem Satz ab |
12 | SREM-Schlüssel member1 [member2] Entfernt ein oder mehrere Mitglieder aus einem Satz |
13 | SUNION key1 [key2] Fügt mehrere Sätze hinzu |
14 | SUNIONSTORE Zielschlüssel1 [Schlüssel2] Fügt mehrere Sätze hinzu und speichert den resultierenden Satz in einem Schlüssel |
15 | SSCAN-Tastencursor [MATCH-Muster] [COUNT count] Inkrementiert iterierte Set-Elemente |
Redis-sortierte Sets ähneln Redis-Sets mit der einzigartigen Funktion von Werten, die in einem Set gespeichert sind. Der Unterschied besteht darin, dass jedem Mitglied eines sortierten Satzes eine Punktzahl zugeordnet ist, die verwendet wird, um die geordnete sortierte Menge von der kleinsten zur größten Punktzahl zu bringen.
Fügen Sie in Redis sortiertem Satz die Existenz von Elementen in O (1) hinzu, entfernen Sie sie und testen Sie sie (konstante Zeit, unabhängig von der Anzahl der im Satz enthaltenen Elemente). Die maximale Länge einer Liste beträgt 2 32 - 1 Elemente (4294967295, mehr als 4 Milliarden Elemente pro Satz).
Beispiel
redis 127.0.0.1:6379> ZADD tutorials 1 redis
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 2 mongodb
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 1
redis 127.0.0.1:6379> ZADD tutorials 3 mysql
(integer) 0
redis 127.0.0.1:6379> ZADD tutorials 4 mysql
(integer) 0
redis 127.0.0.1:6379> ZRANGE tutorials 0 10 WITHSCORES
1) "redis"
2) "1"
3) "mongodb"
4) "2"
5) "mysql"
6) "4"
Im obigen Beispiel werden drei Werte mit ihrer Punktzahl in den von Redis sortierten Satz mit dem Namen "Tutorials" vom Befehl eingefügt ZADD.
Redis Sorted Sets Befehle
In der folgenden Tabelle sind einige grundlegende Befehle aufgeführt, die sich auf sortierte Mengen beziehen.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | ZADD-Schlüssel score1 member1 [score2 member2] Fügt einem sortierten Satz ein oder mehrere Mitglieder hinzu oder aktualisiert seine Punktzahl, falls diese bereits vorhanden ist |
2 | ZCARD-Taste Ruft die Anzahl der Mitglieder in einem sortierten Satz ab |
3 | ZCOUNT-Taste min max Zählt die Mitglieder in einem sortierten Satz mit Punktzahlen innerhalb der angegebenen Werte |
4 | ZINCRBY-Schlüsselinkrementelement Erhöht die Punktzahl eines Mitglieds in einem sortierten Satz |
5 | ZINTERSTORE Zielnummer Tasten Taste [Taste ...] Schneidet mehrere sortierte Sätze und speichert den resultierenden sortierten Satz in einem neuen Schlüssel |
6 | ZLEXCOUNT-Taste min max Zählt die Anzahl der Mitglieder in einem sortierten Satz zwischen einem bestimmten lexikografischen Bereich |
7 | ZRANGE Schlüssel Start Stopp [WITHSCORES] Gibt einen Bereich von Mitgliedern in einer sortierten Gruppe nach Index zurück |
8 | ZRANGEBYLEX-Taste min max [LIMIT-Offset-Anzahl] Gibt einen Bereich von Mitgliedern in einer sortierten Menge nach lexikografischem Bereich zurück |
9 | ZRANGEBYSCORE-Taste min max [WITHSCORES] [LIMIT] Gibt eine Reihe von Mitgliedern in einem sortierten Satz nach Punktzahl zurück |
10 | ZRANK Schlüsselmitglied Bestimmt den Index eines Mitglieds in einer sortierten Gruppe |
11 | ZREM-Schlüsselmitglied [Mitglied ...] Entfernt ein oder mehrere Mitglieder aus einem sortierten Satz |
12 | ZREMRANGEBYLEX-Taste min max Entfernt alle Mitglieder in einem sortierten Satz zwischen dem angegebenen lexikografischen Bereich |
13 | ZREMRANGEBYRANK Schlüssel Start Stopp Entfernt alle Mitglieder in einer sortierten Gruppe innerhalb der angegebenen Indizes |
14 | ZREMRANGEBYSCORE-Taste min max Entfernt alle Mitglieder in einem sortierten Satz innerhalb der angegebenen Punktzahlen |
15 | Startstopp der ZREVRANGE-Taste [WITHSCORES] Gibt eine Reihe von Mitgliedern in einer sortierten Gruppe nach Index zurück, wobei die Punktzahlen von hoch nach niedrig geordnet sind |
16 | ZREVRANGEBYSCORE-Taste max min [WITHSCORES] Gibt eine Reihe von Mitgliedern in einem sortierten Satz nach Punktzahl zurück, wobei die Punktzahlen von hoch nach niedrig geordnet sind |
17 | ZREVRANK Schlüsselmitglied Bestimmt den Index eines Mitglieds in einem sortierten Satz, wobei die Punktzahlen von hoch nach niedrig geordnet sind |
18 | ZSCORE-Schlüsselmitglied Ruft die dem angegebenen Mitglied zugeordnete Punktzahl in einem sortierten Satz ab |
19 | ZUNIONSTORE Zielnummer Tasten Taste [Taste ...] Fügt mehrere sortierte Sätze hinzu und speichert den resultierenden sortierten Satz in einem neuen Schlüssel |
20 | ZSCAN-Tastencursor [MATCH-Muster] [COUNT count] Inkrementiert iterierte sortierte Mengenelemente und zugehörige Bewertungen |
Redis HyperLogLog ist ein Algorithmus, der die Randomisierung verwendet, um eine Annäherung an die Anzahl eindeutiger Elemente in einer Menge unter Verwendung nur einer Konstanten und einer geringen Speichermenge bereitzustellen.
HyperLogLog bietet eine sehr gute Annäherung an die Kardinalität eines Satzes, selbst wenn nur eine sehr kleine Speichermenge von etwa 12 KByte pro Schlüssel mit einem Standardfehler von 0,81% verwendet wird. Die Anzahl der Elemente, die Sie zählen können, ist unbegrenzt, es sei denn, Sie nähern sich 2 64 Elementen.
Beispiel
Das folgende Beispiel erklärt, wie Redis HyperLogLog funktioniert.
redis 127.0.0.1:6379> PFADD tutorials "redis"
1) (integer) 1
redis 127.0.0.1:6379> PFADD tutorials "mongodb"
1) (integer) 1
redis 127.0.0.1:6379> PFADD tutorials "mysql"
1) (integer) 1
redis 127.0.0.1:6379> PFCOUNT tutorials
(integer) 3
Redis HyperLogLog-Befehle
In der folgenden Tabelle sind einige grundlegende Befehle aufgeführt, die sich auf Redis HyperLogLog beziehen.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | PFADD-Schlüsselelement [Element ...] Fügt die angegebenen Elemente zum angegebenen HyperLogLog hinzu. |
2 | PFCOUNT-Taste [Taste ...] Gibt die ungefähre Kardinalität der Menge (n) zurück, die vom HyperLogLog bei Schlüssel beobachtet wurde. |
3 | PFMERGE destkey sourcekey [sourcekey ...] Fügt N verschiedene HyperLogLogs zu einem einzigen zusammen. |
Redis Pub / Sub implementiert das Nachrichtensystem, bei dem die Absender (in der Redis-Terminologie als Herausgeber bezeichnet) die Nachrichten senden, während die Empfänger (Abonnenten) sie empfangen. Der Link, über den die Nachrichten übertragen werden, wird aufgerufenchannel.
In Redis kann ein Client eine beliebige Anzahl von Kanälen abonnieren.
Beispiel
Das folgende Beispiel erläutert, wie das Konzept des Publish Subscriber funktioniert. Im folgenden Beispiel abonniert ein Client einen Kanal mit dem Namen 'redisChat'.
redis 127.0.0.1:6379> SUBSCRIBE redisChat
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "redisChat"
3) (integer) 1
Jetzt veröffentlichen zwei Clients die Nachrichten auf demselben Kanal mit dem Namen "redisChat", und der oben abonnierte Client empfängt Nachrichten.
redis 127.0.0.1:6379> PUBLISH redisChat "Redis is a great caching technique"
(integer) 1
redis 127.0.0.1:6379> PUBLISH redisChat "Learn redis by tutorials point"
(integer) 1
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by tutorials point"
Redis PubSub-Befehle
In der folgenden Tabelle sind einige grundlegende Befehle für Redis Pub / Sub aufgeführt.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | PSUBSCRIBE Muster [Muster ...] Abonniert Kanäle, die den angegebenen Mustern entsprechen. |
2 | Unterbefehl PUBSUB [Argument [Argument ...]] Zeigt den Status des Pub / Sub-Systems an. Zum Beispiel, welche Clients auf dem Server aktiv sind. |
3 | PUBLISH-Kanalnachricht Sendet eine Nachricht an einen Kanal. |
4 | PUNSUBSCRIBE [Muster [Muster ...]] Hört auf, auf Nachrichten zu warten, die auf Kanälen gesendet werden, die den angegebenen Mustern entsprechen. |
5 | ABONNIEREN Kanal [Kanal ...] Hört auf Nachrichten, die auf den angegebenen Kanälen veröffentlicht wurden. |
6 | UNSUBSCRIBE [Kanal [Kanal ...]] Hört auf, auf Nachrichten zu warten, die auf den angegebenen Kanälen veröffentlicht wurden. |
Redis-Transaktionen ermöglichen die Ausführung einer Gruppe von Befehlen in einem einzigen Schritt. Im Folgenden sind die beiden Eigenschaften von Transaktionen aufgeführt.
Alle Befehle in einer Transaktion werden nacheinander als einzelne isolierte Operation ausgeführt. Es ist nicht möglich, dass eine von einem anderen Client ausgegebene Anforderung während der Ausführung einer Redis-Transaktion bearbeitet wird.
Die Redis-Transaktion ist ebenfalls atomar. Atomic bedeutet, dass entweder alle oder keine Befehle verarbeitet werden.
Stichprobe
Die Redis-Transaktion wird per Befehl initiiert MULTI und dann müssen Sie eine Liste von Befehlen übergeben, die in der Transaktion ausgeführt werden sollen, wonach die gesamte Transaktion von ausgeführt wird EXEC Befehl.
redis 127.0.0.1:6379> MULTI
OK
List of commands here
redis 127.0.0.1:6379> EXEC
Beispiel
Das folgende Beispiel erläutert, wie die Redis-Transaktion initiiert und ausgeführt werden kann.
redis 127.0.0.1:6379> MULTI
OK
redis 127.0.0.1:6379> SET tutorial redis
QUEUED
redis 127.0.0.1:6379> GET tutorial
QUEUED
redis 127.0.0.1:6379> INCR visitors
QUEUED
redis 127.0.0.1:6379> EXEC
1) OK
2) "redis"
3) (integer) 1
Redis Transaktionsbefehle
Die folgende Tabelle zeigt einige grundlegende Befehle für Redis-Transaktionen.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | VERWERFEN Verwirft alle nach MULTI ausgegebenen Befehle |
2 | EXEC Führt alle nach MULTI ausgegebenen Befehle aus |
3 | MULTI Markiert den Beginn eines Transaktionsblocks |
4 | AUSSEHEN Vergisst alle beobachteten Schlüssel |
5 | WATCH-Taste [Taste ...] Beobachtet die angegebenen Schlüssel, um die Ausführung des MULTI / EXEC-Blocks zu bestimmen |
Redis-Skripte werden verwendet, um Skripte mit dem Lua-Interpreter auszuwerten. Es ist ab Version 2.6.0 in Redis integriert. Der für die Skripterstellung verwendete Befehl lautetEVAL Befehl.
Syntax
Es folgt die grundlegende Syntax von EVAL Befehl.
redis 127.0.0.1:6379> EVAL script numkeys key [key ...] arg [arg ...]
Beispiel
Das folgende Beispiel erklärt, wie Redis-Skripte funktionieren.
redis 127.0.0.1:6379> EVAL "return {KEYS[1],KEYS[2],ARGV[1],ARGV[2]}" 2 key1
key2 first second
1) "key1"
2) "key2"
3) "first"
4) "second"
Redis Scripting-Befehle
In der folgenden Tabelle sind einige grundlegende Befehle für Redis Scripting aufgeführt.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | EVAL-Skript numkeys key [key ...] arg [arg ...] Führt ein Lua-Skript aus. |
2 | EVALSHA sha1 numkeys key [key ...] arg [arg ...] Führt ein Lua-Skript aus. |
3 | SCRIPT EXISTS-Skript [Skript ...] Überprüft das Vorhandensein von Skripten im Skriptcache. |
4 | SCRIPT FLUSH Entfernt alle Skripte aus dem Skriptcache. |
5 | SCRIPT KILL Tötet das Skript, das gerade ausgeführt wird. |
6 | SCRIPT LOAD-Skript Lädt das angegebene Lua-Skript in den Skript-Cache. |
Redis-Verbindungsbefehle werden grundsätzlich zum Verwalten von Clientverbindungen mit dem Redis-Server verwendet.
Beispiel
Das folgende Beispiel erläutert, wie sich ein Client beim Redis-Server authentifiziert und prüft, ob der Server ausgeführt wird oder nicht.
redis 127.0.0.1:6379> AUTH "password"
OK
redis 127.0.0.1:6379> PING
PONG
Redis-Verbindungsbefehle
In der folgenden Tabelle sind einige grundlegende Befehle für Redis-Verbindungen aufgeführt.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | AUTH Passwort Authentifiziert sich beim Server mit dem angegebenen Passwort |
2 | ECHO Nachricht Druckt die angegebene Zeichenfolge |
3 | KLINGELN Überprüft, ob der Server ausgeführt wird oder nicht |
4 | VERLASSEN Schließt die aktuelle Verbindung |
5 | SELECT Index Ändert die ausgewählte Datenbank für die aktuelle Verbindung |
Redis-Serverbefehle werden grundsätzlich zur Verwaltung des Redis-Servers verwendet.
Beispiel
Das folgende Beispiel erklärt, wie wir alle Statistiken und Informationen über den Server erhalten können.
redis 127.0.0.1:6379> INFO
# Server
redis_version:2.8.13
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:c2238b38b1edb0e2
redis_mode:standalone
os:Linux 3.5.0-48-generic x86_64
arch_bits:64
multiplexing_api:epoll
gcc_version:4.7.2
process_id:3856
run_id:0e61abd297771de3fe812a3c21027732ac9f41fe
tcp_port:6379
uptime_in_seconds:11554
uptime_in_days:0 hz:10
lru_clock:16651447
config_file:
# Clients
connected_clients:1
client_longest_output_list:0
client_biggest_input_buf:0
blocked_clients:0
# Memory
used_memory:589016
used_memory_human:575.21K
used_memory_rss:2461696
used_memory_peak:667312
used_memory_peak_human:651.67K
used_memory_lua:33792
mem_fragmentation_ratio:4.18
mem_allocator:jemalloc-3.6.0
# Persistence
loading:0
rdb_changes_since_last_save:3
rdb_bgsave_in_progress:0
rdb_last_save_time:1409158561
rdb_last_bgsave_status:ok
rdb_last_bgsave_time_sec:0
rdb_current_bgsave_time_sec:-1
aof_enabled:0
aof_rewrite_in_progress:0
aof_rewrite_scheduled:0
aof_last_rewrite_time_sec:-1
aof_current_rewrite_time_sec:-1
aof_last_bgrewrite_status:ok
aof_last_write_status:ok
# Stats
total_connections_received:24
total_commands_processed:294
instantaneous_ops_per_sec:0
rejected_connections:0
sync_full:0
sync_partial_ok:0
sync_partial_err:0
expired_keys:0
evicted_keys:0
keyspace_hits:41
keyspace_misses:82
pubsub_channels:0
pubsub_patterns:0
latest_fork_usec:264
# Replication
role:master
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0
# CPU
used_cpu_sys:10.49
used_cpu_user:4.96
used_cpu_sys_children:0.00
used_cpu_user_children:0.01
# Keyspace
db0:keys = 94,expires = 1,avg_ttl = 41638810
db1:keys = 1,expires = 0,avg_ttl = 0
db3:keys = 1,expires = 0,avg_ttl = 0
Redis Server-Befehle
In der folgenden Tabelle sind einige grundlegende Befehle für den Redis-Server aufgeführt.
Sr.Nr. | Befehl & Beschreibung |
---|---|
1 | BGREWRITEAOF Schreibt die Nur-Anhängen-Datei asynchron neu |
2 | BGSAVE Speichert den Datensatz asynchron auf der Festplatte |
3 | CLIENT KILL [IP: Port] [ID Client-ID] Beendet die Verbindung eines Clients |
4 | KLIENTEN LISTE Ruft die Liste der Clientverbindungen zum Server ab |
5 | CLIENT GETNAME Ruft den Namen der aktuellen Verbindung ab |
6 | CLIENT PAUSE Timeout Stoppt die Verarbeitung von Befehlen von den Clients für eine bestimmte Zeit |
7 | CLIENT SETNAME Verbindungsname Legt den aktuellen Verbindungsnamen fest |
8 | CLUSTER SLOTS Ruft ein Array von Cluster-Slot-zu-Knoten-Zuordnungen ab |
9 | BEFEHL Ruft ein Array mit Redis-Befehlsdetails ab |
10 | BEFEHLSZAHL Ruft die Gesamtzahl der Redis-Befehle ab |
11 | BEFEHL GETKEYS Extrahiert die Schlüssel mit einem vollständigen Redis-Befehl |
12 | BGSAVE Speichert den Datensatz asynchron auf der Festplatte |
13 | BEFEHLSINFO Befehlsname [Befehlsname ...] Ruft ein Array spezifischer Redis-Befehlsdetails ab |
14 | Parameter CONFIG GET Ruft den Wert eines Konfigurationsparameters ab |
15 | CONFIG REWRITE Schreibt die Konfigurationsdatei mit der In-Memory-Konfiguration neu |
16 | Parameterwert CONFIG SET Setzt einen Konfigurationsparameter auf den angegebenen Wert |
17 | RESETSTAT KONFIG Setzt die von INFO zurückgegebenen Statistiken zurück |
18 | DBSIZE Gibt die Anzahl der Schlüssel in der ausgewählten Datenbank zurück |
19 | DEBUG OBJECT-Taste Ruft Debugging-Informationen zu einem Schlüssel ab |
20 | DEBUG SEGFAULT Bringt den Server zum Absturz |
21 | FLUSHALL Entfernt alle Schlüssel aus allen Datenbanken |
22 | FLUSHDB Entfernt alle Schlüssel aus der aktuellen Datenbank |
23 | INFO [Abschnitt] Ruft Informationen und Statistiken zum Server ab |
24 | LASTSAVE Ruft den UNIX-Zeitstempel des letzten erfolgreichen Speichervorgangs auf der Festplatte ab |
25 | MONITOR Lauscht in Echtzeit auf alle vom Server empfangenen Anforderungen |
26 | ROLLE Gibt die Rolle der Instanz im Kontext der Replikation zurück |
27 | SPAREN Speichert den Datensatz synchron auf der Festplatte |
28 | SHUTDOWN [NOSAVE] [SAVE] Speichert das Dataset synchron auf der Festplatte und fährt dann den Server herunter |
29 | SLAVEOF-Host-Port Macht den Server zu einem Slave einer anderen Instanz oder befördert ihn als Master |
30 | Unterbefehl SLOWLOG [Argument] Verwaltet das Redis-Protokoll für langsame Abfragen |
31 | SYNC Befehl für die Replikation |
32 | ZEIT Gibt die aktuelle Serverzeit zurück |
Redis SAVE Mit dem Befehl wird eine Sicherung der aktuellen Redis-Datenbank erstellt.
Syntax
Es folgt die grundlegende Syntax von Redis SAVE Befehl.
127.0.0.1:6379> SAVE
Beispiel
Das folgende Beispiel erstellt eine Sicherung der aktuellen Datenbank.
127.0.0.1:6379> SAVE
OK
Dieser Befehl erstellt eine dump.rdb Datei in Ihrem Redis-Verzeichnis.
Stellen Sie Redis-Daten wieder her
Verschieben Sie zum Wiederherstellen von Redis-Daten die Redis-Sicherungsdatei (dump.rdb) in Ihr Redis-Verzeichnis und starten Sie den Server. Verwenden Sie, um Ihr Redis-Verzeichnis abzurufenCONFIG Befehl von Redis wie unten gezeigt.
127.0.0.1:6379> CONFIG get dir
1) "dir"
2) "/user/tutorialspoint/redis-2.8.13/src"
In der Ausgabe des obigen Befehls /user/tutorialspoint/redis-2.8.13/src ist das Verzeichnis, in dem der Redis-Server installiert ist.
Bgsave
Zum Erstellen eines Redis-Backups ein alternativer Befehl BGSAVEist ebenfalls verfügbar. Dieser Befehl startet den Sicherungsvorgang und führt ihn im Hintergrund aus.
Beispiel
127.0.0.1:6379> BGSAVE
Background saving started
Redis database can be secured, such that any client making a connection needs to authenticate before executing a command. To secure Redis, you need to set the password in the config file.
Example
Following example shows the steps to secure your Redis instance.
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) ""
By default, this property is blank, which means no password is set for this instance. You can change this property by executing the following command.
127.0.0.1:6379> CONFIG set requirepass "tutorialspoint"
OK
127.0.0.1:6379> CONFIG get requirepass
1) "requirepass"
2) "tutorialspoint"
After setting the password, if any client runs the command without authentication, then (error) NOAUTH Authentication required. error will return. Hence, the client needs to use AUTH command to authenticate himself.
Syntax
Following is the basic syntax of AUTH command.
127.0.0.1:6379> AUTH password
Example
127.0.0.1:6379> AUTH "tutorialspoint"
OK
127.0.0.1:6379> SET mykey "Test value"
OK
127.0.0.1:6379> GET mykey
"Test value"
Redis benchmark is the utility to check the performance of Redis by running n commands simultaneously.
Syntax
Following is the basic syntax of Redis benchmark.
redis-benchmark [option] [option value]
Example
Following example checks Redis by calling 100000 commands.
redis-benchmark -n 100000
PING_INLINE: 141043.72 requests per second
PING_BULK: 142857.14 requests per second
SET: 141442.72 requests per second
GET: 145348.83 requests per second
INCR: 137362.64 requests per second
LPUSH: 145348.83 requests per second
LPOP: 146198.83 requests per second
SADD: 146198.83 requests per second
SPOP: 149253.73 requests per second
LPUSH (needed to benchmark LRANGE): 148588.42 requests per second
LRANGE_100 (first 100 elements): 58411.21 requests per second
LRANGE_300 (first 300 elements): 21195.42 requests per second
LRANGE_500 (first 450 elements): 14539.11 requests per second
LRANGE_600 (first 600 elements): 10504.20 requests per second
MSET (10 keys): 93283.58 requests per second
Following is a list of available options in Redis benchmark.
Sr.No | Option | Description | Default Value |
---|---|---|---|
1 | -h | Specifies server host name | 127.0.0.1 |
2 | -p | Specifies server port | 6379 |
3 | -s | Specifies server socket | |
4 | -c | Specifies the number of parallel connections | 50 |
5 | -n | Specifies the total number of requests | 10000 |
6 | -d | Specifies data size of SET/GET value in bytes | 2 |
7 | -k | 1=keep alive, 0=reconnect | 1 |
8 | -r | Use random keys for SET/GET/INCR, random values for SADD | |
9 | -p | Pipeline <numreq> requests | 1 |
10 | -h | Specifies server host name | |
11 | -q | Forces Quiet to Redis. Just shows query/sec values | |
12 | --csv | Output in CSV format | |
13 | -l | Generates loop, Run the tests forever | |
14 | -t | Only runs the comma-separated list of tests | |
15 | -I | Idle mode. Just opens N idle connections and wait |
Example
Following example shows the multiple usage options in Redis benchmark utility.
redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 100000 -q
SET: 146198.83 requests per second
LPUSH: 145560.41 requests per second
Redis accepts clients’ connections on the configured listening TCP port and on the Unix socket, if enabled. When a new client connection is accepted, the following operations are performed −
The client socket is put in non-blocking state since Redis uses multiplexing and non-blocking I/O.
The TCP_NODELAY option is set in order to ensure that we don't have delays in our connection.
A readable file event is created so that Redis is able to collect the client queries as soon as new data is available to be read on the socket.
Maximum Number of Clients
In Redis config (redis.conf), there is a property called maxclients, which describes the maximum number of clients that can connect to Redis.
Following is the basic syntax of command.
config get maxclients
1) "maxclients"
2) "10000"
By default, this property is set to 10000 (depending upon the maximum number of file descriptors limit of OS), although you can change this property.
Example
In the following example, we have set the maximum number of clients to 100000, while starting the server.
redis-server --maxclients 100000
Client Commands
Sr.No | Command | Description |
---|---|---|
1 | CLIENT LIST | Returns the list of clients connected to Redis server |
2 | CLIENT SETNAME | Assigns a name to the current connection |
3 | CLIENT GETNAME | Returns the name of the current connection as set by CLIENT SETNAME |
4 | CLIENT PAUSE | This is a connections control command able to suspend all the Redis clients for the specified amount of time (in milliseconds) |
5 | CLIENT KILL | This command closes a given client connection. |
Redis is a TCP server and supports request/response protocol. In Redis, a request is accomplished with the following steps −
The client sends a query to the server, and reads from the socket, usually in a blocking way, for the server response.
The server processes the command and sends the response back to the client.
Meaning of Pipelining
The basic meaning of pipelining is, the client can send multiple requests to the server without waiting for the replies at all, and finally reads the replies in a single step.
Beispiel
Um das Redis-Pipelining zu überprüfen, starten Sie einfach die Redis-Instanz und geben Sie den folgenden Befehl in das Terminal ein.
$(echo -en "PING\r\n SET tutorial redis\r\nGET tutorial\r\nINCR
visitor\r\nINCR visitor\r\nINCR visitor\r\n"; sleep 10) | nc localhost 6379
+PONG
+OK
redis
:1
:2
:3
Im obigen Beispiel überprüfen wir die Redis-Verbindung mithilfe von PINGBefehl. Wir haben eine Zeichenfolge mit dem Namen gesetzttutorial mit Wert redis. Später erhalten wir diesen Schlüsselwert und erhöhen die Besuchernummer dreimal. Im Ergebnis sehen wir, dass alle Befehle einmal an Redis gesendet werden und Redis die Ausgabe aller Befehle in einem einzigen Schritt bereitstellt.
Vorteile von Pipelining
Der Vorteil dieser Technik ist eine drastisch verbesserte Protokollleistung. Die durch Pipelining erzielte Beschleunigung reicht von einem Faktor fünf für Verbindungen zum lokalen Host bis zu einem Faktor von mindestens einhundert für langsamere Internetverbindungen.
Beim Partitionieren werden Ihre Daten in mehrere Redis-Instanzen aufgeteilt, sodass jede Instanz nur eine Teilmenge Ihrer Schlüssel enthält.
Vorteile der Partitionierung
Es ermöglicht viel größere Datenbanken, wobei die Summe des Speichers vieler Computer verwendet wird. Ohne Partitionierung sind Sie auf die Speichermenge beschränkt, die ein einzelner Computer unterstützen kann.
Es ermöglicht die Skalierung der Rechenleistung auf mehrere Kerne und mehrere Computer sowie der Netzwerkbandbreite auf mehrere Computer und Netzwerkadapter.
Nachteile der Partitionierung
Vorgänge mit mehreren Schlüsseln werden normalerweise nicht unterstützt. Beispielsweise können Sie den Schnittpunkt zwischen zwei Sätzen nicht ausführen, wenn sie in den Schlüsseln gespeichert sind, die verschiedenen Redis-Instanzen zugeordnet sind.
Redis-Transaktionen mit mehreren Schlüsseln können nicht verwendet werden.
Das Partitionierungsgranuliary ist der Schlüssel, daher ist es nicht möglich, ein Dataset mit einem einzelnen großen Schlüssel wie einem sehr großen sortierten Satz zu teilen.
Bei Verwendung der Partitionierung ist die Datenverarbeitung komplexer. Beispielsweise müssen Sie mehrere RDB / AOF-Dateien verarbeiten. Um eine Sicherung Ihrer Daten zu erhalten, müssen Sie die Persistenzdateien von mehreren Instanzen und Hosts zusammenfassen.
Das Hinzufügen und Entfernen der Kapazität kann komplex sein. Beispielsweise unterstützt Redis Cluster eine weitgehend transparente Neuverteilung von Daten mit der Möglichkeit, zur Laufzeit Knoten hinzuzufügen und zu entfernen. Andere Systeme wie clientseitige Partitionierung und Proxys unterstützen diese Funktion jedoch nicht. Eine Technik namensPresharding hilft in dieser Hinsicht.
Arten der Partitionierung
In Redis stehen zwei Arten der Partitionierung zur Verfügung. Angenommen, wir haben vier Redis-Instanzen, R0, R1, R2, R3 und viele Schlüssel, die Benutzer wie Benutzer: 1, Benutzer: 2, ... usw. darstellen.
Bereichspartitionierung
Die Bereichspartitionierung wird erreicht, indem Bereiche von Objekten bestimmten Redis-Instanzen zugeordnet werden. Angenommen, in unserem Beispiel gehen die Benutzer von ID 0 bis ID 10000 in die Instanz R0, während die Benutzer von ID 10001 bis ID 20000 in die Instanz R1 usw. gehen.
Hash-Partitionierung
Bei dieser Art der Partitionierung wird eine Hash-Funktion (z. B. eine Modulfunktion) verwendet, um den Schlüssel in eine Zahl umzuwandeln, und dann werden die Daten in verschiedenen Redis-Instanzen gespeichert.
Bevor Sie Redis in Ihren Java-Programmen verwenden, müssen Sie sicherstellen, dass der Redis Java-Treiber und Java auf dem Computer eingerichtet sind. Sie können unser Java-Tutorial für die Java-Installation auf Ihrem Computer überprüfen.
Installation
Lassen Sie uns nun sehen, wie Sie den Redis Java-Treiber einrichten.
Sie müssen das Glas vom Pfad herunterladen Download jedis.jar. Stellen Sie sicher, dass Sie die neueste Version herunterladen.
Sie müssen das einschließen jedis.jar in deinen Klassenpfad.
Stellen Sie eine Verbindung zum Redis Server her
import redis.clients.jedis.Jedis;
public class RedisJava {
public static void main(String[] args) {
//Connecting to Redis server on localhost
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//check whether server is running or not
System.out.println("Server is running: "+jedis.ping());
}
}
Lassen Sie uns nun das obige Programm kompilieren und ausführen, um die Verbindung zum Redis-Server zu testen. Sie können Ihren Pfad gemäß Ihren Anforderungen ändern. Wir gehen von der aktuellen Version von ausjedis.jar ist im aktuellen Pfad verfügbar.
$javac RedisJava.java
$java RedisJava
Connection to server sucessfully
Server is running: PONG
Redis Java String Beispiel
import redis.clients.jedis.Jedis;
public class RedisStringJava {
public static void main(String[] args) {
//Connecting to Redis server on localhost
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//set the data in redis string
jedis.set("tutorial-name", "Redis tutorial");
// Get the stored data and print it
System.out.println("Stored string in redis:: "+ jedis.get("tutorialname"));
}
}
Lassen Sie uns nun das obige Programm kompilieren und ausführen.
$javac RedisStringJava.java
$java RedisStringJava
Connection to server sucessfully
Stored string in redis:: Redis tutorial
Redis Java List Beispiel
import redis.clients.jedis.Jedis;
public class RedisListJava {
public static void main(String[] args) {
//Connecting to Redis server on localhost
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//store data in redis list
jedis.lpush("tutorial-list", "Redis");
jedis.lpush("tutorial-list", "Mongodb");
jedis.lpush("tutorial-list", "Mysql");
// Get the stored data and print it
List<String> list = jedis.lrange("tutorial-list", 0 ,5);
for(int i = 0; i<list.size(); i++) {
System.out.println("Stored string in redis:: "+list.get(i));
}
}
}
Lassen Sie uns nun das obige Programm kompilieren und ausführen.
$javac RedisListJava.java
$java RedisListJava
Connection to server sucessfully
Stored string in redis:: Redis
Stored string in redis:: Mongodb
Stored string in redis:: Mysql
Beispiel für Redis Java Keys
import redis.clients.jedis.Jedis;
public class RedisKeyJava {
public static void main(String[] args) {
//Connecting to Redis server on localhost
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//store data in redis list
// Get the stored data and print it
List<String> list = jedis.keys("*");
for(int i = 0; i<list.size(); i++) {
System.out.println("List of stored keys:: "+list.get(i));
}
}
}
Lassen Sie uns nun das obige Programm kompilieren und ausführen.
$javac RedisKeyJava.java
$java RedisKeyJava
Connection to server sucessfully
List of stored keys:: tutorial-name
List of stored keys:: tutorial-list
Bevor Sie Redis in Ihren PHP-Programmen verwenden, müssen Sie sicherstellen, dass Redis PHP-Treiber und PHP auf dem Computer eingerichtet sind. Sie können das PHP-Tutorial für die PHP-Installation auf Ihrem Computer überprüfen.
Installation
Lassen Sie uns nun überprüfen, wie Sie den Redis PHP-Treiber einrichten.
Sie müssen die phpredis aus dem Github-Repository herunterladen https://github.com/nicolasff/phpredis. Nachdem Sie es heruntergeladen haben, extrahieren Sie die Dateien in das Verzeichnis phpredis. Installieren Sie unter Ubuntu die folgende Erweiterung.
cd phpredis
sudo phpize
sudo ./configure
sudo make
sudo make install
Kopieren Sie nun den Inhalt des Ordners "modules" und fügen Sie ihn in das PHP-Erweiterungsverzeichnis ein. Fügen Sie die folgenden Zeilen hinzu php.ini.
extension = redis.so
Jetzt ist Ihre Redis PHP-Installation abgeschlossen
Stellen Sie eine Verbindung zum Redis Server her
<?php
//Connecting to Redis server on localhost
$redis = new Redis();
$redis->connect('127.0.0.1', 6379); echo "Connection to server sucessfully"; //check whether server is running or not echo "Server is running: ".$redis->ping();
?>
Wenn das Programm ausgeführt wird, wird das folgende Ergebnis erzeugt.
Connection to server sucessfully
Server is running: PONG
Redis PHP String Beispiel
<?php
//Connecting to Redis server on localhost
$redis = new Redis(); $redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//set the data in redis string
$redis->set("tutorial-name", "Redis tutorial"); // Get the stored data and print it echo "Stored string in redis:: " .$redis→get("tutorial-name");
?>
Wenn das obige Programm ausgeführt wird, wird das folgende Ergebnis erzeugt.
Connection to server sucessfully
Stored string in redis:: Redis tutorial
Redis PHP List Beispiel
<?php
//Connecting to Redis server on localhost
$redis = new Redis(); $redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
//store data in redis list
$redis->lpush("tutorial-list", "Redis"); $redis->lpush("tutorial-list", "Mongodb");
$redis->lpush("tutorial-list", "Mysql"); // Get the stored data and print it $arList = $redis->lrange("tutorial-list", 0 ,5); echo "Stored string in redis:: "; print_r($arList);
?>
Wenn das obige Programm ausgeführt wird, wird das folgende Ergebnis erzeugt.
Connection to server sucessfully
Stored string in redis::
Redis
Mongodb
Mysql
Redis PHP Keys Beispiel
<?php
//Connecting to Redis server on localhost
$redis = new Redis(); $redis->connect('127.0.0.1', 6379);
echo "Connection to server sucessfully";
// Get the stored keys and print it
$arList = $redis->keys("*");
echo "Stored keys in redis:: "
print_r($arList);
?>
Wenn das Programm ausgeführt wird, wird das folgende Ergebnis erzeugt.
Connection to server sucessfully
Stored string in redis::
tutorial-name
tutorial-list