¿Cómo vaciar una base de datos redis?

164

He estado jugando con redis (y agregué algo de diversión) durante los últimos días y me gustaría saber si hay una manera de vaciar la base de datos (eliminar los conjuntos, la clave existente ...) fácilmente .
Durante mis pruebas, creé varios conjuntos con muchos miembros, incluso creé conjuntos que no recuerdo el nombre (¿cómo puedo enumerar a esos tipos?).
¿Alguna idea sobre cómo deshacerse de todos ellos?

Luc
fuente

Respuestas:

197

Tienes dos opciones:

  • FLUSHDB : borra la base de datos actualmente activa
  • FLUSHALL : borra todas las bases de datos existentes
Plaes
fuente
136

Ten cuidado aquí.

FlushDB elimina todas las claves en la base de datos actual, mientras que FlushALL elimina todas las claves en todas las bases de datos en el host actual.

Diestro
fuente
¿Hay algún inconveniente en usar FlushDB para borrar una base de datos específica del código de producción?
Alex Naspo
1
@AlexNaspo es potencialmente problemático ya que cuanto más grande sea su DB, más tardará en vaciar. Dado que las bases de datos numeradas (compartidas) son administradas por el mismo servidor Redis, esto podría bloquear sus otras bases de datos durante ese tiempo. Si es posible, abstenerse de usar bases de datos compartidas por eso y también porque no son a prueba de futuro (no se admite en v3). Vea aquí para más detalles: redislabs.com/blog/…
Itamar Haber
@ItamarHaber ¿Cuál es la forma más eficiente de eliminar o caducar un conjunto de claves que coinciden con un formato específico?
Alex Naspo
1
@AlexNaspo si está utilizando v2.8 +, un combo de SCAN y DEL haría el truco muy bien. Vea aquí un script de bash que lo hace: stackoverflow.com/a/23399125/3160475
Itamar Haber
$ redis-cliluego seleccione la base de datos. Estoy seleccionando 0 > select 0y borro todas las claves de db 0> FLUSHDB
sagar junnarkar
31

Con redis-cli:

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

Documentos de Redis: FLUSHDB , FLUSHALL

Hieu Le
fuente
30

tldr: flushdbborra una base de datos y flushallborra todas las bases de datos

CORRIENTE clara

Elimine la base de datos predeterminada o seleccionada actualmente (generalmente `0) con

redis-cli flushdb

Claro ESPECÍFICO

Eliminar la base de datos de redis específica con (por ejemplo, 8como mi base de datos de destino):

redis-cli -n 8 flushdb 

Limpiar todo

Eliminar todas las bases de datos redis con

redis-cli flushall
Bagazo
fuente
2

Hay respuestas correctas, pero solo quiero agregar una opción más (requiere tiempo de inactividad):

  1. Detén a Redis.
  2. Eliminar el archivo RDB (buscar ubicación en redis.conf).
  3. Inicia Redis.
Denys
fuente
0

abra su redis cli y hay dos posibles opciones que podría usar:

FLUSHDB: elimina todas las claves del DB actualmente seleccionado. FLUSHALL: elimine todas las claves de todas las bases de datos existentes, no solo la seleccionada actualmente.

Behzad Babaei
fuente