रेडिस में, हैश, सूचियां, सेट और सॉर्टसेट जैसी बड़ी गैर-स्ट्रिंग ऑब्जेक्ट्स को हटाने से आपके सर्वर को महत्वपूर्ण समय के लिए अवरुद्ध किया जा सकता है, संभावित रूप से क्लाइंट-साइड टाइमआउट जैसी समस्याएं हो सकती हैं। यह Redisworks के तरीके के दो पहलुओं के कारण है:
-
रेडिस सिंगल-थ्रेडेड है। इसका मतलब यह है कि यह एक बार में केवल एक कमांड को प्रोसेस कर सकता है, चाहे आपने कितने भी क्लाइंट कनेक्ट किए हों। अगर किसी कमांड को चलने में लंबा समय लगता है, तो हर दूसरे कमांड को इंतजार करना होगा।
-
DEL
एकO(n)
है हैश, सूचियों, सेटों और क्रमबद्ध सेटों पर संचालन। इसका मतलब यह है कि 1 मिलियन तत्वों वाली वस्तु को 100 तत्वों के साथ समान प्रकार की समान वस्तु की तुलना में हटाने में लगभग 10,000x अधिक समय लगेगा।
सौभाग्य से, Redis हमें कुछ उपकरण देता है जिनका उपयोग हम सर्वर को लंबे समय तक ब्लॉक किए बिना बड़ी वस्तुओं को हटाने के लिए कर सकते हैं। हमने अपने समाधान यहां संकलित किए हैं:
- बड़े हैश हटाना
- बड़ी सूचियां हटाना
- बड़े समूह हटाना
- बड़े सॉर्ट किए गए सेट हटाना