2011-07-07 12 views
35

रेडिस स्ट्रिंग के बजाय पूर्णांक डेटाबेस संख्या का उपयोग क्यों करता है? ऐसा लगता है कि एक छोटी आंतरिक डेटा संरचना रखने के लिए यह छोटा होगा जो "वास्तविक" पूर्णांक के तारों को मानचित्र करता है।रेडिस पूर्णांक डेटाबेस संख्या का उपयोग क्यों करता है?

+0

रेडिस देव सूची पर बेहतर पूछें। – bmargulies

+1

अगर मुझे यहां कोई जवाब नहीं मिल रहा है, तो यह मेरा अगला कदम होगा ... लेकिन जब भी संभव हो तो मेलिंग सूचियों से बचने की कोशिश करता हूं: पी –

+3

जो लोग बंद करने के लिए मतदान करते हैं: क्या आप कृपया एक टिप्पणी छोड़ सकते हैं क्यों? मुझे लगता है कि * यह सवाल नहीं है "शायद राय, बहस, तर्क, मतदान, या विस्तारित चर्चा मांगेगा" और, मुझे पता है कि रेडिस * लोकप्रिय नहीं है, लेकिन मुझे नहीं लगता कि इसके बारे में प्रश्न " असाधारण रूप से संकीर्ण "या तो। –

उत्तर

40

कारण रेडिस डीबी नामों के रूप में तारों का उपयोग नहीं करता है, लेकिन इंडेक्स यह है कि रेडिस डेटाबेस का लक्ष्य और क्षमता शब्दकोश का बाहरी स्तर प्रदान नहीं करना है: रेडिस शब्दकोश कई शब्दकोशों में स्केल नहीं कर सकता है, बल्कि सिर्फ एक छोटी संख्या (यह एक ट्रेडऑफ है), न ही हम प्रति डिज़ाइन नेस्टेड डेटा स्ट्रक्चर प्रदान करना चाहते हैं, इसलिए यह केवल "कुछ नामस्थान" हैं और परिणामस्वरूप एक संख्यात्मक छोटी अनुक्रमणिका का उपयोग करना सबसे अच्छा विकल्प जैसा प्रतीत होता है।

+5

क्या कोई कारण है कि यह नामस्थान स्ट्रिंग उपसर्ग के रूप में डीबी नाम का इलाज करने से बेहतर तरीका है? – shazow

4

डेटाबेस नाम देने से वास्तव में रेडिस के डिजाइन लक्ष्यों में फिट नहीं होता है। शुरुआत के लिए, अधिकतम प्रदर्शन के लिए डिज़ाइन की गई प्रणाली में, प्रत्येक कॉल में एक स्ट्रिंग लुकअप जोड़ना एक अच्छा विचार नहीं है जब अधिकांश उपयोगकर्ता डीबी 0 में सब कुछ डालते हैं।

डिज़ाइन लक्ष्यों में से एक और मुख्य लक्ष्य को सरल रख रहा है - यदि अनुरोध किया गया नया आदेश क्लाइंट पर मौजूदा आदेशों को एक बड़े प्रदर्शन दंड के बिना जोड़कर लागू किया जा सकता है तो इसे कोर सिस्टम में नहीं जोड़ा जाएगा। यदि आपको वास्तव में नामित डेटाबेस की आवश्यकता है, तो अपने क्लाइंट कोड को एक स्ट्रिंग पढ़ने और Redis को एक नंबर भेजने के लिए यह छोटा है।

+1

"प्रत्येक कॉल में एक स्ट्रिंग लुकअप जोड़ना" - अगर मैं गलत हूं तो मुझे सही करें, लेकिन इसे केवल प्रत्येक 'चयन' कॉल के लिए एक लुकअप करने की आवश्यकता होगी (यानी, प्रतीकात्मक नाम को पूर्णांक में मैप करने के लिए), नहीं? –

+1

सच है, हालांकि यह डेटाबेस और कनेक्शन का उपयोग करने के तरीके के आधार पर समकक्ष के करीब हो सकता है। –

संबंधित मुद्दे