2016-11-18 4 views
2

J'ai installé Redis dans CentOS et j'ai plusieurs clés de Redis comme celui-ci,Redis cli supprimer plusieurs clés

Product:<id>:<url> 

Comment puis-je supprimer tous les Product:*:* avec CLI?

Version Redis: 3.2.4 [latest je suppose]

Merci!

Répondre

2

Il n'y a pas de commande intégrée pour cela. Vous devez utiliser la commande SCAN pour obtenir toutes les clés correspondant au modèle, puis utilisez la commande DEL pour supprimer ces clés.

// 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:*:* 

Une autre solution consiste à utiliser un HASH pour enregistrer les clés de ce modèle:

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

Pouvez-vous me donner l'exemple pour numériser et ensuite supprimer? –

+0

@JohnFG Je mets à jour la réponse. Pour plus de détails sur 'SCAN', consultez la documentation. –

4

En utilisant l'outil redis-cli, vous pouvez effectuer les opérations suivantes:

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