Como esvaziar um banco de dados redis?


164

Estive jogando com redis (e adiciono um pouco de diversão) nos últimos dias e gostaria de saber se existe uma maneira de esvaziar o db (remova os conjuntos, a chave existente ...) facilmente .
Durante meus testes, criei vários conjuntos com muitos membros, até criei conjuntos que não me lembro do nome (como posso listar esses caras?).
Alguma idéia de como se livrar de todos eles?

Respostas:


197

Você tem duas opções:

  • FLUSHDB - limpa o banco de dados atualmente ativo
  • FLUSHALL - limpa todos os bancos de dados existentes

136

Tenha cuidado aqui.

FlushDB exclui todas as chaves no banco de dados atual, enquanto FlushALL exclui todas as chaves em todos os bancos de dados no host atual.


Existe alguma desvantagem em usar o FlushDB para limpar um banco de dados específico do código de produção?
Alex Naspo

1
@AlexNaspo potencialmente problemático, pois quanto maior o seu banco de dados, mais tempo levará para liberar. Como os bancos de dados numerados (compartilhados) são gerenciados pelo mesmo servidor Redis, isso pode bloquear seus outros bancos de dados por esse período. Se possível, evite usar bancos de dados compartilhados por causa disso e também porque eles não são à prova de futuro (não são suportados na v3). Veja aqui para mais detalhes: redislabs.com/blog/…
Itamar Haber

@ItamarHaber Qual é a maneira mais eficiente de excluir ou expirar um conjunto de chaves que correspondem a um formato específico?
Alex Naspo

1
@AlexNaspo, se você estiver usando a v2.8 +, uma combinação de SCAN e DEL faria o truque. Veja aqui um script do bash que faz isso: stackoverflow.com/a/23399125/3160475
Itamar Haber

$ redis-clidepois selecione banco de dados. Eu estou selecionando 0 > select 0e excluir todas as chaves de db 0> FLUSHDB
sagar junnarkar

31

Com redis-cli:

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

Redis Docs: FLUSHDB , FLUSHALL


30

tldr: flushdblimpa um banco de dados e flushalllimpa todos os bancos de dados

Limpar CURRENT

Exclua o banco de dados padrão ou atualmente selecionado (geralmente `0) com

redis-cli flushdb

Limpar SPECIFIC

Exclua o banco de dados redis específico com (por exemplo, 8como meu banco de dados de destino):

redis-cli -n 8 flushdb 

Limpar tudo

Exclua todos os bancos de dados redis com

redis-cli flushall

2

Existem respostas corretas, mas eu só quero adicionar mais uma opção (requer tempo de inatividade):

  1. Pare Redis.
  2. Exclua o arquivo RDB (localize o redis.conf).
  3. Inicie o Redis.

0

abra seu Redis CLI e existem duas opções possíveis que você pode usar:

FLUSHDB - Exclua todas as chaves do banco de dados selecionado no momento. FLUSHALL - Exclua todas as chaves de todos os bancos de dados existentes, não apenas o atualmente selecionado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.