Jak opróżnić bazę danych redis?


164

Bawiłem się z redisem (i dodałem trochę zabawy) przez ostatnie kilka dni i chciałbym wiedzieć, czy jest sposób na łatwe opróżnienie bazy danych (usunięcie zestawów, istniejącego klucza ...) .
Podczas moich testów stworzyłem kilka zestawów z wieloma składnikami, stworzyłem nawet zestawy, których nazwy nie pamiętam (jak jednak mogę wymienić tych facetów?).
Masz pomysł, jak się ich wszystkich pozbyć?

Odpowiedzi:



136

Uważaj tutaj.

FlushDB usuwa wszystkie klucze z bieżącej bazy danych, podczas gdy FlushALL usuwa wszystkie klucze ze wszystkich baz danych na bieżącym hoście.


Czy jest jakaś wada używania FlushDB do czyszczenia określonej bazy danych z kodu produkcyjnego?
Alex Naspo

1
@AlexNaspo potencjalnie problematyczne, ponieważ im większa jest twoja baza danych, tym dłużej potrwa spłukiwanie. Ponieważ ponumerowane (udostępnione) bazy danych są zarządzane przez ten sam serwer Redis, może to zablokować inne bazy danych na ten czas. Jeśli to możliwe, powstrzymaj się od korzystania z udostępnionych baz danych z tego powodu, a także dlatego, że nie są one przyszłościowe (nie są obsługiwane w wersji 3). Zobacz tutaj, aby uzyskać więcej informacji: redislabs.com/blog/…
Itamar Haber

@ItamarHaber Jaki jest najbardziej skuteczny sposób usunięcia lub wygaśnięcia zestawu kluczy pasujących do określonego formatu?
Alex Naspo

1
@AlexNaspo, jeśli używasz v2.8 +, połączenie SCAN i DEL dobrze by załatwiło sprawę. Zobacz tutaj skrypt basha, który to robi: stackoverflow.com/a/23399125/3160475
Itamar Haber

$ redis-clinastępnie wybierz bazę danych. Ja wybierając 0 > select 0i usunąć wszystkie klucze db 0> FLUSHDB
Sagar junnarkar

31

Z redis-cli:

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

Redis Docs: FLUSHDB , FLUSHALL


30

tldr: flushdbczyści jedną bazę danych i flushallczyści wszystkie bazy danych

Wyczyść CURRENT

Usuń domyślną lub aktualnie wybraną bazę danych (zwykle `0) za pomocą

redis-cli flushdb

Wyczyść SPECIFIC

Usuń określoną bazę danych redis za pomocą (np. 8Jako mojej docelowej bazy danych):

redis-cli -n 8 flushdb 

Wyczyść wszystko

Usuń wszystkie bazy danych redis za pomocą

redis-cli flushall

2

Są dobre odpowiedzi, ale chcę tylko dodać jeszcze jedną opcję (wymaga przestoju):

  1. Zatrzymaj Redis.
  2. Usuń plik RDB (znajdź lokalizację w redis.conf).
  3. Uruchom Redis.

0

otwórz swoje kliknięcie Redis i istnieją dwie możliwe opcje, których możesz użyć:

FLUSHDB - Usuń wszystkie klucze aktualnie wybranej bazy danych. FLUSHALL - Usuń wszystkie klucze ze wszystkich istniejących baz danych, a nie tylko z aktualnie wybranej.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.