Redis
 sql >> Base de données >  >> NoSQL >> Redis

Comment supprimer des clés correspondant à un modèle dans Redis Cluster

Les réponses à cette question essaient de supprimer plusieurs clés dans un seul DEL . Cependant, les clés correspondant au modèle donné peuvent NE PAS se trouver dans le même emplacement, et Redis Cluster NE prend PAS en charge la commande à plusieurs touches si ces clés n'appartiennent pas au même emplacement. C'est pourquoi vous obtenez le message d'erreur.

Afin de résoudre ce problème, vous devez DEL ces clés une par une :

redis-cli --scan --pattern "foo*" |xargs -L 1 redis-cli del

Le -L option pour xargs La commande spécifie le nombre de clés à supprimer. Vous devez spécifier cette option comme 1 .

Afin de supprimer toutes les clés correspondant au modèle, vous devez également exécuter la commande ci-dessus pour tous les nœuds maîtres de votre cluster.

REMARQUE

  1. Avec cette commande, vous devez supprimer ces clés une par une, ce qui peut être très lent. Vous devez envisager de reconcevoir votre base de données et d'utiliser des hashtags pour que les clés correspondant au motif appartiennent au même emplacement. Afin que vous puissiez supprimer ces clés en un seul DEL .

  2. Soit SCAN ou KEYS commande sont inefficaces, en particulier, KEYS ne doit pas être utilisé en production. Vous devez envisager de créer un index pour ces clés.