Heim  >  Artikel  >  Datenbank  >  So lösen Sie das Problem der Stapellöschung von Schlüsselwerten in Redis

So lösen Sie das Problem der Stapellöschung von Schlüsselwerten in Redis

王林
王林nach vorne
2023-05-31 08:59:001654Durchsuche

Aufgetretene Probleme:

Während des Entwicklungsprozesses werden Sie auf Schlüssel stoßen, die nach bestimmten Regeln stapelweise gelöscht werden müssen, z. B. login_logID (die ID ist eine Variable, die Sie jetzt benötigen). Zum Löschen von „login_log*“ gibt es einen Datentyp, aber Redis selbst verfügt nur über Befehlstasten zum stapelweisen Abfragen der Schlüsselwerte eines Typs, es gibt jedoch keinen Befehl zum stapelweisen Löschen eines bestimmten Datentyps.

Lösung:

Zuerst abfragen, dann löschen, xargs zum Übergeben von Parametern verwenden (xargs kann Pipe- oder Standardeingabedaten (stdin) in Befehlszeilenparameter umwandeln), zuerst ausführen In Löschen Sie in der Abfrageanweisung den abgefragten Schlüsselwert und den ursprünglichen del-Parameter.

redis-cli  KEYS key* (查找条件) | xargs redis-cli  del

=>[Das nach der Ausführung zurückgegebene Ergebnis wirkt sich auf die Menge aus]: (integer) 10[Menge 10]
Führen Sie ein Experiment durch und erstellen Sie zunächst drei Schlüsselwerte desselben Typs #🎜 🎜#

127.0.0.1:6379> set test1 1

OK
127.0.0.1:6379> setze test2 2
OK
127.0. 0.1: 6379 & gt; #1) „test3“
2) „test2“
3) „test1“

Redis verlassen und den Löschbefehl lokal ausführen

[root@localhost redis]# redis-cli -a 密码 -n 0(数据库) keys "test*" |xargs redis-cli -a 密码 -n 0(数据库)  del
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
(integer) 3 (返回行数)
# 🎜🎜 #Prinzipanalyse:
Dieser Befehl führt zunächst den Befehl „keys“ über den Redis-Client aus, durchsucht alle Schlüssel im Fuzzy-Modus und verwendet den Befehl „xargs“, um die zuvor abgefragten Schlüssel als Eingabe für den nachfolgenden Befehl „redis del“ zu verwenden #🎜 🎜# Entspricht der Ausführung von redis-cli del test1 test2 test3


Hinweis: Sie müssen bei der Ausführung hier Redis-Bedingungen mitbringen, -a dient zur Eingabe des Kennworts, -n dient zur Angabe der Datenbank, wenn Redis ist nicht lokal oder es gibt andere Änderungen. Sie müssen auch -h redis server ip, -p port

Zum Beispiel

redis-cli -h 127.0 hinzufügen .0.1 (IP-Adresse) -p 6379 (Portnummer) -a Passwort -n 1 (schreibe die Nummer, in der sich die Daten befinden) KEYS key* (Suchbedingung) |. -p 6379 (Portnummer) -a Passwort -n 1) del


Ergänzendes Wissen:

Löschen in Redis1. Das Redis DEL Der Befehl wird zum Löschen vorhandener Schlüssel verwendet. Vorhandene Schlüssel werden ignoriert. Zum Beispiel:

127.0.0.1:6379> set hello world

OK

127.0.0.1:6379> del hallo
Ganzzahl) 1

Aber del kann nur eine oder mehrere löschen und nicht in Stapeln löschen. Dies ist nicht anwendbar, wenn die zu löschende Datenmenge zu groß ist.
2. Löschen Sie die gesamten Redis-Serverdaten: Flushall
3 Löschen Sie alle Schlüssel in der aktuellen Bibliothek: Flushdb

.

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem der Stapellöschung von Schlüsselwerten in Redis. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen