Sharding लगभग प्रतिकृति के विपरीत है, हालांकि वे orthogonal अवधारणाओं रहे हैं और अच्छी तरह से एक साथ काम करते हैं।
शेर्डिंग, जिसे विभाजन के रूप में भी जाना जाता है, डेटा को कुंजी द्वारा विभाजित कर रहा है; जबकि प्रतिकृति, मिररिंग के रूप में भी जानते हैं, सभी डेटा कॉपी करने के लिए है।
शेर्डिंग प्रदर्शन बढ़ाने के लिए उपयोगी है, किसी भी संसाधन पर हिट और मेमोरी लोड को कम करता है। प्रतिकृति पढ़ने की उच्च उपलब्धता के लिए उपयोगी है। यदि आप एकाधिक प्रतिकृतियों से पढ़ते हैं, तो आप सभी संसाधनों पर हिट रेट भी कम कर देंगे, लेकिन सभी संसाधनों के लिए स्मृति आवश्यकता एक ही है। यह ध्यान दिया जाना चाहिए कि, जब आप एक दास को लिख सकते हैं, प्रतिकृति मास्टर-> केवल गुलाम है। तो आप इस तरह से लिखने के पैमाने पर स्केल नहीं कर सकते हैं।
मान लीजिए कि आपके पास निम्नलिखित tuples हैं: [1: ऐप्पल], [2: केला], [3: चेरी], [4: डुरियन] और हमारे पास दो मशीनें ए और बी हैं। शार्डिंग के साथ, हम कुंजी स्टोर कर सकते हैं मशीन ए पर 2,4; और प्रतिकृति के साथ मशीन बी पर कुंजियों 1,3, हम कुंजी मशीन एक पर 1,2,3,4 और 1,2,3,4 मशीन बी पर
Sharding आम तौर पर एक सुसंगत हैश प्रदर्शन से कार्यान्वित किया जाता है की दुकान कुंजी पर उपर्युक्त उदाहरण निम्नलिखित हैश फ़ंक्शन एच (x) {वापसी x% 2 == 0? ए: बी} के साथ लागू किया गया था।
अवधारणाओं को गठबंधन करने के लिए, हम प्रत्येक शार्ड को दोहरा सकते हैं। ऊपर मामलों में, डेटा (2,4) मशीन एक की के सभी मशीन सी पर दोहराया जा सकता है और डेटा (1,3) मशीन बी के के सभी मशीन पर दोहराया जा सकता है डी
किसी भी कुंजी वैल्यू स्टोर (जिसमें से रेडिस केवल एक उदाहरण है) शेरिंग का समर्थन करता है, हालांकि कुछ क्रॉस-कुंजी फ़ंक्शंस अब काम नहीं करेंगे। रेडिस बॉक्स के बाहर प्रतिकृति का समर्थन करता है।
ठंडा। मुझे लगता है कि उत्तर न केवल रेडिस – joetsuihk
तक सीमित है (सामान्य रूप से), लेकिन वास्तव में सवाल का जवाब नहीं देता है :) –
मुझे लगता है कि यह उत्तर प्रश्नकर्ता से पूछे जाने वाले प्रश्नों के लिए एक अच्छी प्रतिक्रिया प्रदान करता है। काफी सरल, अभी तक सही स्पष्टीकरण। +1 –