66 votes

Dans le redis, comment faire pour supprimer les clés?

Je veux supprimer les clés qui correspondent à l'utilisateur"*".

comment dois-je faire dans le redis ligne de commande?

62voto

user1151446 Points 399

Un autre compact one-liner que j'utilise pour faire ce que vous voulez, c'est:

redis-cli KEYS "user*" | xargs redis-cli DEL

47voto

Donald Miner Points 18116

Ce n'est pas une fonctionnalité dès maintenant pour être en mesure de le faire d'un seul coup (voir les commentaires dans l' DEL documentation). Malheureusement, vous êtes de gauche avec l'aide d' KEYS, en parcourant les résultats, et ensuite à l'aide d' DEL supprimer chacun.

Comment sur l'utilisation de bash un peu d'aide?

for key in `echo 'KEYS user*' | redis-cli | awk '{print $1}'`
 do echo DEL $key
done | redis-cli

Pour passer d'elle:

  1. echo 'KEYS user*' | redis-cli | awk '{print $1}' -- obtenir toutes les clés et les dépouiller le texte supplémentaire que vous ne voulez pas avec awk.
  2. echo DEL $key -- pour chacun, de créer un écho à la déclaration de l'enlever.
  3. | redis-cli - prendre le DEL déclarations et de les transmettre de nouveau dans la cli.

Ne suggère pas que c'est la meilleure approche (vous pourriez avoir quelques questions si certains de vos noms d'utilisateurs ont des espaces à l', mais nous espérons que vous obtenez le point).

3voto

neilkimmett Points 747

Suite à orangeoctopus de réponse, vous n'avez pas besoin de l' echo et le tuyau, vous pouvez passer des commandes en tant qu'arguments en redis-cli. Cela signifie que vous pouvez faire

for key in `redis-cli "KEYS" "user*" | awk '{print $1}'`
 do redis-cli "DEL" "$key"
done

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X