2015-04-01 14 views
5

क्लाइंट साइड शेर्डिंग दृष्टिकोण में मैं एक शार्ड बना सकता हूं और उस सिंगल शेड में एक जेसेट स्टोर कर सकता हूं। रेडिस क्लस्टर के साथ, एक जेसेट कितना बड़ा हो सकता है? यदि मैं रेडिस में मौजूद सभी चाबियों का सूचकांक बन रहा हूं तो मैं zsets को कैसे स्केल करूं?रेडिस क्लस्टर और जेएससेट

+0

क्या आप समझा सकते हैं कि आपकी शार्ड कुंजी क्या है? साथ ही आप अपने जेसेट को शर्ड्स में या केवल शर्ड्स में विभाजित तत्वों को विभाजित करना चाहते हैं। चूंकि यहां दस्तावेज़ों के अनुसार, ___ विभाजन ग्रैन्युलरिटी कुंजी है, इसलिए डेटासेट को एक बहुत बड़ी कुंजी के साथ एक बहुत बड़ी तरह से सेट करना संभव नहीं है। यहां रेडिस डॉक्स देखें: http://redis.io/ विषय/विभाजन – skippy

उत्तर

5

संक्षिप्त उत्तर: हाँ - आप अपने सभी प्रमुख नामों को एक क्रमबद्ध सेट में स्टोर कर सकते हैं।

एक रेडिस सॉर्ट किए गए सेट में 2^32 - 1 (42 9 4 9 672 9 5) सदस्य हो सकते हैं, प्रत्येक 512 एमबी लंबा और 64 बिट स्कोर तक स्ट्रिंग से बना होता है (डेटाबेस में चाबियों की संख्या के लिए एक ही सीमा होती है)। यह स्टैंडअलोन रेडिस के साथ-साथ रेडिस क्लस्टर दोनों पर लागू होता है और एकल सॉर्ट किए गए सेट में ~ 2048 पीबी को स्टोर करने की अनुमति देता है :)

रेडिस क्लस्टर में, प्रत्येक कुंजी एक विशिष्ट हैश स्लॉट से संबंधित होती है। इसलिए, उपरोक्त सैद्धांतिक आकार सीमाओं के बावजूद, एक क्रमबद्ध सेट, केवल आपके सबसे बड़े शार्ड (यानी रेडिस सर्वर) जितना बड़ा हो सकता है। जबकि एक शार्ड एक स्लॉट का प्रबंधन कर सकता है, और एक स्लॉट एक ही कुंजी पकड़ सकता है - स्केलेबिलिटी चिंताओं के कारण मैं शायद उस दृष्टिकोण की अनुशंसा करता हूं।

आपकी सभी चाबियाँ इंडेक्स करना एक दिलचस्प चुनौती है - आप ऐसा क्यों कर रहे हैं? और सबसे महत्वपूर्ण बात यह है कि आप उस इंडेक्स के खिलाफ किस तरह के प्रश्नों को चलाने के लिए चाहते हैं? आपके डेटाबेस और पूछताछ आवश्यकताओं में कुंजियों की संख्या के आधार पर, इसे प्राप्त करने के लिए अन्य, अधिक कुशल तरीके हो सकते हैं।

+0

यदि मेरा आदेश "zadd to_be_expired 142791950 उपयोगकर्ता 1" है तो यहां कुंजी to_be_expired है और सदस्य उपयोगकर्ता 1 है। यदि मैं ज़ेट में अन्य सदस्यों को जोड़ता हूं तो क्या वे उसी रेडिस इंस्टेंस पर संग्रहीत होंगे? तो अगर मैं एक जेसेट का उपयोग करता हूं तो एक रेडिस इंस्टेंस सभी ट्रैफिक सही सेवारत करेगा? – Phoenix

+0

Exactomundo (yes) –

+0

लेकिन यदि एक सर्वर को लगातार दिल की धड़कन के सभी अनुरोधों के साथ मारा जाता है जो स्केलेबल नहीं होता है। – Phoenix

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