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!
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!
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
En utilisant l'outil redis-cli
, vous pouvez effectuer les opérations suivantes:
redis-cli --scan --pattern 'Product:*:*' | xargs redis-cli DEL
Pouvez-vous me donner l'exemple pour numériser et ensuite supprimer? –
@JohnFG Je mets à jour la réponse. Pour plus de détails sur 'SCAN', consultez la documentation. –