Bir redis veritabanı nasıl boşaltılır?


164

Ben son birkaç gündür redis ile oynamak (ve onunla biraz eğlence eklemek) ve ben kolayca db boşaltmak için bir yol olup olmadığını bilmek istiyorum (setleri kaldırmak, mevcut anahtar ....) .
Testlerim sırasında çok sayıda üyeyle birkaç set oluşturdum, hatta adını hatırlamadığım setler bile oluşturdum (bu adamları nasıl listeleyebilirim?).
Hepsinden nasıl kurtulacağınız hakkında bir fikrin var mı?

Yanıtlar:


197

İki seçeneğiniz var:

  • FLUSHDB - şu anda etkin olan veritabanını siler
  • FLUSHALL - mevcut tüm veritabanlarını temizler

136

Burada dikkatli ol.

FlushDB geçerli ana bilgisayardaki tüm veritabanlarındaki tüm anahtarları, FlushALL ise geçerli ana bilgisayardaki tüm anahtarları siler.


Üretim kodundan belirli bir veritabanını temizlemek için FlushDB kullanmanın bir dezavantajı var mı?
Alex Naspo

1
@AlexNaspo, DB'niz ne kadar büyük olursa, yıkama o kadar uzun sürer. Numaralandırılmış (paylaşılan) veritabanları aynı Redis sunucusu tarafından yönetildiğinden, bu süre boyunca diğer veritabanlarınızı engelleyebilir. Mümkünse, bu nedenle ve geleceğe yönelik olmadığı için (v3'te desteklenmez) paylaşılan veritabanlarını kullanmaktan kaçının. Daha fazla ayrıntı için buraya bakın: redislabs.com/blog/…
Itamar Haber

@ItamarHaber Belirli bir biçimle eşleşen bir dizi anahtarı silmenin veya süresinin dolmasının en etkili yolu nedir?
Alex Naspo

1
@AlexNaspo v2.8 + kullanıyorsanız, bir SCAN ve DEL kombinasyonu hileyi güzelce yapar. Bunu yapan bir bash betiği için buraya bakın: stackoverflow.com/a/23399125/3160475
Itamar Haber

$ redis-clisonra veritabanını seçin. Ben 0 seçiyorum > select 0ve db 0 tüm anahtarlarını silin> FLUSHDB
sagar junnarkar


30

tldr: flushdbbir veritabanını flushalltemizler ve tüm veritabanlarını temizler

CURRENT öğesini temizle

Varsayılan veya seçili olan veritabanını (genellikle `0) ile sil

redis-cli flushdb

ÖZEL Temizle

Belirli redis veritabanını (örn 8. Hedef veritabanım olarak) ile sil :

redis-cli -n 8 flushdb 

Hepsini temizle

İle tüm redis veritabanlarını sil

redis-cli flushall

2

Doğru cevaplar var ama ben sadece bir seçenek daha eklemek istiyorum (kesinti gerektirir):

  1. Redis'i durdur.
  2. RDB dosyasını silin (redis.conf içindeki konumu bulun).
  3. Redis'i başlatın.

0

Redis cli'nizi açın ve kullanabileceğiniz iki olası seçenek vardır:

FLUSHDB - Seçili DB'nin tüm anahtarlarını sil. FLUSHALL - Yalnızca şu anda seçili olan tüm veritabanlarının tüm anahtarlarını siler.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.