2016-11-18 4 views
2

I Redis in CentOS, und ich habe mehrere Schlüssel von redis wie diese installiert haben,Redis cli löschen mehrere Schlüssel

Product:<id>:<url> 

Wie kann ich alle Product:*:* mit CLI löschen?

Redis Version: 3.2.4 [Neueste ich denke]

Dank!

Antwort

2

Es gibt keinen eingebauten Befehl dafür. Sie müssen den Befehl SCAN verwenden, um alle Schlüssel zu erhalten, die dem Muster entsprechen. Verwenden Sie dann den Befehl DEL, um diese Schlüssel zu entfernen.

// scan from cursor 0 to get the next cursor and keys 
SCAN 0 match Product:*:* 
// next_cursor, Product:x1:y1, Product:x2:y2, ... 
DEL Product:x1:y1 Product:x2:y2 ... 
// scan from the next cursor until it return 0 
SCAN next_cursor match Product:*:* 

Eine andere Lösung ist es, eine HASH verwenden Schlüssel dieses Muster zu speichern:

// set key value 
HSET Products Product:<id>:<url> value 
// remove a single key 
HDEL Products Product:<id>:<url> 
// remove all keys 
DEL Products 
+0

Können Sie mir Beispiel scannen und dann löschen? –

+0

@JohnFG Ich aktualisiere die Antwort. Weitere Informationen zu "SCAN" finden Sie in der Dokumentation. –

4

Mit dem redis-cli Tool können Sie folgendes tun:

redis-cli --scan --pattern 'Product:*:*' | xargs redis-cli DEL