Come svuotare un database redis?


164

Ho giocato con Redis (e aggiungo un po 'di divertimento con esso) negli ultimi giorni e mi piacerebbe sapere se c'è un modo per svuotare il db (rimuovere i set, la chiave esistente ....) facilmente .
Durante i miei test, ho creato diversi set con molti membri, anche creato set che non ricordo il nome (come posso elencare quei ragazzi però?).
Qualche idea su come sbarazzarsi di tutti loro?

Risposte:


197

Hai due opzioni:

  • FLUSHDB : cancella il database attualmente attivo
  • FLUSHALL : cancella tutti i database esistenti

136

Stai attento qui.

FlushDB elimina tutte le chiavi nel database corrente mentre FlushALL elimina tutte le chiavi in ​​tutti i database sull'host corrente.


C'è qualche svantaggio nell'usare FlushDB per cancellare un database specifico dal codice di produzione?
Alex Naspo,

1
@AlexNaspo potenzialmente problematico poiché più grande è il tuo DB, più tempo ci vorrà per svuotare. Poiché i database numerati (condivisi) sono gestiti dallo stesso server Redis, ciò potrebbe bloccare gli altri database per quella durata. Se possibile, astenersi dall'utilizzare database condivisi a causa di ciò e anche perché non sono a prova di futuro (non supportati nella v3). Vedi qui per maggiori dettagli: redislabs.com/blog/…
Itamar Haber,

@ItamarHaber Qual è il modo più efficiente per eliminare o scadere un set di chiavi che corrispondono a un formato specifico?
Alex Naspo,

1
@AlexNaspo se stai usando v2.8 +, una combinazione di SCAN e DEL farebbe il trucco bene. Vedi qui per uno script bash che lo fa: stackoverflow.com/a/23399125/3160475
Itamar Haber

$ redis-cliquindi selezionare il database. Sto selezionando 0 > select 0ed elimino tutti i tasti di db 0> FLUSHDB
sagar junnarkar

31

Con redis-cli:

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

Redis Docs: FLUSHDB , FLUSHALL


30

tldr: flushdbcancella un database e flushallcancella tutti i database

Cancella CORRENTE

Elimina il database predefinito o attualmente selezionato (di solito `0) con

redis-cli flushdb

Cancella SPECIFIC

Elimina il database redis specifico con (ad es. 8Come database di destinazione):

redis-cli -n 8 flushdb 

Cancella tutto

Elimina tutti i database redis con

redis-cli flushall

2

Ci sono risposte giuste ma voglio solo aggiungere un'altra opzione (richiede tempi di inattività):

  1. Stop Redis.
  2. Elimina il file RDB (trova la posizione in redis.conf).
  3. Avvia Redis.

0

apri il tuo Redis cli e ci sono due possibili opzioni che potresti usare:

FLUSHDB - Elimina tutte le chiavi del DB attualmente selezionato. FLUSHALL - Elimina tutte le chiavi di tutti i database esistenti, non solo quello attualmente selezionato.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.