Souvent, vous souhaitez exporter des données de redis au format csv. Le redis-cli a un --csv
flag, mais cela ne fonctionne que si vous souhaitez exporter une seule clé. Mais avec un peu de magie en ligne de commande, vous pouvez exporter n'importe quel nombre de clés au format CSV.
Ce script exportera les champs id, display name, reputation et location pour tous les hachages commençant par users:*
Utilisation de Scan to Select Keys
La première étape consiste à utiliser redis-cli avec le --scan
et --pattern
flags pour sélectionner les clés qui vous intéressent. Ainsi, pour sélectionner les clés correspondant aux utilisateurs :*, vous exécuterez la commande redis-cli --scan --pattern users:*
.
Notez que redis n'autorise que les modèles de style glob. Donc users:*
correspondra à users:1234
et correspondent également à users:1234:favourites
. Si vous voulez plus de contrôle, vous pouvez le suivre avec un grep et une regex.
redis-cli --scan --pattern users:* | grep -e '^users:[^:]*$'
Utilisation d'AWK pour exécuter des commandes Redis
Pour chaque clé que nous avons sélectionnée, nous devons exécuter une commande redis pour récupérer les données de cette clé. Dans notre cas, nous voulons récupérer des champs à partir d'un hachage, nous utilisons donc le hmget
commande. Le $0
dans le script awk fait référence à la clé que nous avons sélectionnée précédemment à l'aide de scan.
La sortie du script awk est redirigée vers redis-cli. Chaque commande est exécutée et la sortie est renvoyée au format CSV à cause du --csv
drapeau.
Personnalisation de ce script
- Si votre serveur Redis n'est pas sur localhost, vous devrez fournir l'hôte, le port et le mot de passe deux fois dans la commande, essentiellement chaque fois que vous appelez redis-cli.
- Vous pouvez exécuter n'importe quelle commande au lieu de
hmget
Voir aussi
- Renommer les champs dans un hachage
- Renommer plusieurs clés à l'aide de Scan
- Définir l'expiration sur plusieurs clés
- Supprimer les clés correspondant à un modèle
- L'interface graphique RDBTools pour Redis vous permet de prévisualiser vos actions groupées et fournit une interface graphique puissante pour gérer les données dans Redis. C'est un téléchargement gratuit !