रेडिस डेटाबेस को खाली कैसे करें?


164

मैं पिछले कुछ दिनों के दौरान रेडिस के साथ खेल रहा हूं (और इसके साथ कुछ मज़ा भी जोड़ रहा हूं) और मैं जानना चाहता हूं कि क्या डीबी को खाली करने का एक तरीका है (सेट्स को हटा दें, मौजूदा कुंजी ....) आसानी से। ।
अपने परीक्षणों के दौरान, मैंने बहुत सारे सदस्यों के साथ कई सेट बनाए, यहां तक ​​कि सेट भी बनाए कि मुझे नाम याद नहीं है (हालांकि मैं उन लोगों को कैसे कर सकता हूं?)।
उन सभी से छुटकारा पाने के बारे में कोई विचार?

जवाबों:


197

आपके पास दो विकल्प हैं:

  • FLUSHDB - वर्तमान में सक्रिय डेटाबेस को साफ़ करता है
  • फ्लश - सभी मौजूदा डेटाबेस को साफ़ करता है

136

यहां सावधान रहें।

FlushDB वर्तमान डेटाबेस में सभी कुंजियों को हटा देता है जबकि FlushALL वर्तमान होस्ट पर सभी डेटाबेस में सभी कुंजियों को हटा देता है।


क्या उत्पादन कोड से एक विशिष्ट डेटाबेस को खाली करने के लिए FlushDB का उपयोग करने के लिए कोई नकारात्मक पहलू है?
बजे एलेक्स नेस्पो

1
@ अलेक्सनैपो संभावित रूप से समस्याग्रस्त है क्योंकि जितना बड़ा आपका डीबी है, उतने ही लंबे समय तक फ्लश होगा। चूंकि क्रमांकित (साझा) डेटाबेस उसी Redis सर्वर द्वारा प्रबंधित किए जाते हैं, यह आपके अन्य डेटाबेस को उस अवधि के लिए ब्लॉक कर सकता है। यदि संभव हो, तो उस वजह से साझा डेटाबेस का उपयोग करने से बचना चाहिए और यह भी कि वे भविष्य-प्रमाण नहीं हैं (v3 में समर्थित नहीं हैं)। अधिक जानकारी के लिए यहां देखें: redislabs.com/blog/…
हैबर

@ ItamarHaber कुंजी के एक सेट को हटाने या समाप्त करने का सबसे कुशल तरीका क्या है जो एक विशिष्ट प्रारूप से मेल खाता है?
एलेक्स नास्फो

1
@AlexNaspo अगर आप v2.8 + का उपयोग कर रहे हैं, तो SCAN और DEL का कॉम्बो अच्छी तरह से चाल चलेगा। एक बैश स्क्रिप्ट के लिए यहां देखें जो यह करता है: stackoverflow.com/a/23399125/3160475
इटमार हैबर

$ redis-cliफिर डेटाबेस का चयन करें। मैं 0 का चयन कर रहा हूं > select 0और db 0 की सभी कुंजियों को > FLUSHDB
मिटाता हूं


30

tldr: flushdbएक डेटाबेस को flushallसाफ़ करता है और सभी डेटाबेस को साफ़ करता है

साफ़ साफ़

डिफ़ॉल्ट या वर्तमान में चयनित डेटाबेस (आमतौर पर `0) के साथ हटाएं

redis-cli flushdb

स्पष्ट विनिर्देश

विशिष्ट रेडिस डेटाबेस को हटाएँ (जैसे 8कि मेरा लक्ष्य डेटाबेस):

redis-cli -n 8 flushdb 

सभी साफ करें

के साथ सभी redis डेटाबेस हटाएँ

redis-cli flushall

2

सही उत्तर हैं, लेकिन मैं सिर्फ एक और विकल्प जोड़ना चाहता हूं (डाउनटाइम की आवश्यकता है):

  1. रेडिस बंद करो।
  2. RDB फ़ाइल हटाएँ (redis.conf में स्थान ढूंढें)।
  3. रेडिस शुरू करें।

0

अपने Redis cli खोलें और दो संभावित विकल्प हैं जिनका आप उपयोग कर सकते हैं:

FLUSHDB - वर्तमान में चयनित DB की सभी कुंजियों को हटा दें। FLUSHALL - सभी मौजूदा डेटाबेस की सभी कुंजियों को हटा दें, न केवल वर्तमान में चयनित एक।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.