Comment vider une base de données Redis?

164

J'ai joué avec redis (et j'y ai ajouté un peu de plaisir) ces derniers jours et j'aimerais savoir s'il existe un moyen de vider la base de données (supprimer les ensembles, la clé existante ....) facilement .
Lors de mes tests, j'ai créé plusieurs sets avec beaucoup de membres, même créé des sets dont je ne me souviens plus du nom (comment puis-je lister ces gars?).
Une idée sur la façon de se débarrasser de tous?

Luc
la source

Réponses:

197

Vous avez deux options:

  • FLUSHDB - efface la base de données actuellement active
  • FLUSHALL - efface toutes les bases de données existantes
plaes
la source
136

Soyez prudent ici.

FlushDB supprime toutes les clés de la base de données actuelle tandis que FlushALL supprime toutes les clés de toutes les bases de données sur l'hôte actuel.

Dexter
la source
Y a-t-il un inconvénient à utiliser FlushDB pour effacer une base de données spécifique du code de production?
Alex Naspo
1
@AlexNaspo potentiellement problématique car plus votre base de données est grande, plus il faudra de temps pour vider. Étant donné que les bases de données numérotées (partagées) sont gérées par le même serveur Redis, cela pourrait bloquer vos autres bases de données pendant cette durée. Si possible, évitez d'utiliser des bases de données partagées à cause de cela et aussi parce qu'elles ne sont pas à l'épreuve du temps (non prises en charge dans la v3). Voir ici pour plus de détails: redislabs.com/blog/…
Itamar Haber
@ItamarHaber Quelle est la manière la plus efficace de supprimer ou d'expirer un ensemble de clés correspondant à un format spécifique?
Alex Naspo du
1
@AlexNaspo si vous utilisez la v2.8 +, un combo de SCAN et DEL ferait très bien l'affaire. Voir ici pour un script bash qui le fait: stackoverflow.com/a/23399125/3160475
Itamar Haber
$ redis-clipuis sélectionnez la base de données. Je sélectionne 0 > select 0et supprime toutes les clés de la base de données 0> FLUSHDB
sagar junnarkar
31

Avec redis-cli:

FLUSHDB       - Removes data from your connection's CURRENT database.
FLUSHALL      - Removes data from ALL databases.

Redis Docs: FLUSHDB , FLUSHALL

Hieu Le
la source
30

tldr: flushdbefface une base de données et flushallefface toutes les bases de données

Effacer ACTUEL

Supprimer la base de données par défaut ou actuellement sélectionnée (généralement `0) avec

redis-cli flushdb

Effacer SPÉCIFIQUE

Supprimer la base de données redis spécifique avec (par exemple 8comme base de données cible):

redis-cli -n 8 flushdb 

Tout effacer

Supprimer toutes les bases de données Redis avec

redis-cli flushall
Marc
la source
2

Il y a de bonnes réponses mais je veux juste ajouter une autre option (nécessite un temps d'arrêt):

  1. Arrêtez Redis.
  2. Supprimez le fichier RDB (recherchez l'emplacement dans redis.conf).
  3. Démarrez Redis.
Denys
la source
0

ouvrez votre cli Redis et là deux options possibles que vous pourriez utiliser:

FLUSHDB - Supprime toutes les clés du DB actuellement sélectionné. FLUSHALL - Supprimez toutes les clés de toutes les bases de données existantes, pas seulement celle actuellement sélectionnée.

behzad babaei
la source