Bagaimana cara mengosongkan basis data redis?


164

Saya telah bermain dengan redis (dan menambahkan beberapa kesenangan dengannya) selama beberapa hari terakhir dan saya ingin tahu apakah ada cara untuk mengosongkan db (menghapus set, kunci yang ada ....) dengan mudah .
Selama tes saya, saya membuat beberapa set dengan banyak anggota, bahkan membuat set yang saya tidak ingat namanya (bagaimana saya bisa mendaftar orang-orang itu?).
Adakah ide tentang cara menyingkirkan mereka semua?

Jawaban:


197

Anda memiliki dua opsi:

  • FLUSHDB - membersihkan basis data yang sedang aktif
  • FLUSHALL - membersihkan semua basis data yang ada

136

Hati-hati di sini.

FlushDB menghapus semua kunci dalam database saat ini sementara FlushALL menghapus semua kunci di semua database pada host saat ini.


Apakah ada kerugian menggunakan FlushDB untuk menghapus database spesifik dari kode produksi?
Alex Naspo

1
@AlexNaspo berpotensi bermasalah karena semakin besar DB Anda, semakin lama waktu yang diperlukan untuk mem-flush. Karena database bernomor (dibagi) dikelola oleh server Redis yang sama, ini dapat memblokir basis data Anda yang lain untuk durasi tersebut. Jika mungkin, jangan menggunakan database bersama karena itu dan juga karena mereka tidak tahan masa depan (tidak didukung dalam v3). Lihat di sini untuk perincian lebih lanjut: redislabs.com/blog/…
Itamar Haber

@ ItamarHaber Apa cara paling efisien untuk menghapus atau kedaluwarsa satu set kunci yang cocok dengan format tertentu?
Alex Naspo

1
@AlexNaspo jika Anda menggunakan v2.8 +, kombo dari SCAN dan DEL akan melakukan trik dengan baik. Lihat di sini untuk skrip bash yang melakukannya: stackoverflow.com/a/23399125/3160475
Itamar Haber

$ redis-clilalu pilih basis data. Saya memilih 0 > select 0dan menghapus semua kunci db 0> FLUSHDB
sagar junnarkar

31

Dengan redis-cli:

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

Redis Docs: FLUSHDB , FLUSHALL


30

tldr: flushdbmenghapus satu basis data dan flushallmenghapus semua basis data

Hapus SAAT INI

Hapus database default atau yang saat ini dipilih (biasanya `0) dengan

redis-cli flushdb

Hapus SPECIFIC

Hapus basis data redis tertentu dengan (mis. 8Sebagai basis data target saya):

redis-cli -n 8 flushdb 

Bersihkan semua

Hapus semua basis data redis dengan

redis-cli flushall

2

Ada jawaban yang benar tetapi saya hanya ingin menambahkan satu opsi lagi (membutuhkan waktu henti):

  1. Hentikan Redis.
  2. Hapus file RDB (cari lokasi di redis.conf).
  3. Mulai Redis.

0

buka Redis cli Anda dan Ada dua opsi yang bisa Anda gunakan:

FLUSHDB - Hapus semua kunci dari DB yang saat ini dipilih. FLUSHALL - Hapus semua kunci dari semua database yang ada, bukan hanya yang saat ini dipilih.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.