शार्डिंग के लिए Redis Cluster
क्षैतिज स्केलिंग और दोष-सहनशीलता प्राप्त करने के लिए कई नोड पर डेटा शार्ड करने हेतु Redis Cluster लागू कीजिए।
शार्डिंग के लिए Redis Cluster, CoddyKit पर Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
एकल नोड से आगे स्केलिंग
अब तक हमने उच्च उपलब्धता के लिए Redis प्रतिकृति और Sentinel के बारे में सीखा है। ये अतिरेक और रीड स्केलिंग के लिए बहुत उपयोगी हैं, लेकिन लेखन स्केलिंग या एकल सर्वर की मेमोरी से बड़े डेटासेट को संभालने के लिए क्या किया जाए?
यहीं Redis Cluster काम आता है। इसे आपके डेटा को कई Redis इंस्टेंसों में वितरित करके क्षैतिज स्केलिंग और दोष-सहिष्णुता प्रदान करने के लिए डिज़ाइन किया गया है।
शार्डिंग क्या है
मूल रूप से, Redis Cluster शार्डिंग (जिसे डेटा विभाजन भी कहा जाता है) का उपयोग करता है। कल्पना कीजिए कि आपके पास पुस्तकों का एक बहुत बड़ा पुस्तकालय है।
- एक विशाल शेल्फ के बजाय, आप पुस्तकों को कई छोटी शेल्फों में बाँट देते हैं।
- प्रत्येक शेल्फ में पुस्तकों का एक हिस्सा होता है और एक पुस्तकालयाध्यक्ष उस शेल्फ का प्रबंधन करता है।
Redis Cluster में प्रत्येक Redis इंस्टेंस (या नोड) आपके डेटा की एक ‘शेल्फ’ का प्रबंधन करने वाले ‘पुस्तकालयाध्यक्ष’ की तरह काम करता है। इससे आप मेमोरी और CPU दोनों को स्केल कर सकते हैं।
Redis Cluster आर्किटेक्चर
Redis Cluster आपस में जुड़े Redis इंस्टेंसों का एक समूह है। प्रत्येक इंस्टेंस मास्टर या रेप्लिका हो सकता है।
- मास्टर नोड: ये नोड डेटासेट के एक हिस्से को रखते और प्रबंधित करते हैं।
- रेप्लिका नोड: ये मास्टर नोड की प्रतियाँ होती हैं और उच्च उपलब्धता प्रदान करती हैं। यदि कोई मास्टर विफल हो जाए, तो उसकी किसी रेप्लिका को उसका स्थान लेने के लिए मास्टर बनाया जा सकता है।
क्लस्टर यह सुनिश्चित करता है कि डेटा वितरित रहे और कुछ नोड विफल होने पर भी यह काम करता रहे।
हैश स्लॉट: डेटा का वितरण कैसे होता है
Redis को कैसे पता चलता है कि डेटा का कौन-सा भाग किस नोड पर संग्रहीत है? यह हैश स्लॉट का उपयोग करता है।
- पूरा डेटासेट 16,384 तार्किक स्लॉट में विभाजित होता है (0 से 16383 तक)।
- क्लस्टर का प्रत्येक मास्टर नोड इन हैश स्लॉट के एक उपसमुच्चय के लिए ज़िम्मेदार होता है।
- जब आप कोई कुंजी संग्रहीत करते हैं, तो Redis यह निर्धारित करने के लिए उस कुंजी का हैश निकालता है कि वह किस स्लॉट से संबंधित है।
- इसके बाद यह स्लॉट एक विशिष्ट मास्टर नोड से जुड़ जाता है।
यह प्रणाली लचीले डेटा वितरण और आसान पुनर्संतुलन की सुविधा देती है।
Redis Cluster बनाना
दोष-सहिष्णु सेटअप के लिए क्लस्टर बनाने हेतु कम-से-कम तीन मास्टर नोड आवश्यक हैं (प्रत्येक मास्टर की रेप्लिकाएँ हो सकती हैं)। यहाँ redis-cli का उपयोग करने वाला एक वैचारिक CLI कमांड है:
redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 --cluster-replicas 1
- यह कमांड 3 मास्टर वाला क्लस्टर बनाता है (पोर्ट 7000, 7001 और 7002 पर)।
--cluster-replicas 1का अर्थ है कि प्रत्येक मास्टर नोड की एक रेप्लिका होगी।
redis-cli टूल मास्टर नोड को हैश स्लॉट स्वचालित रूप से सौंप देता है।
क्लाइंट इंटरैक्शन और रीडायरेक्शन
जब कोई क्लाइंट Redis Cluster के साथ इंटरैक्ट करना चाहता है, तो वह किसी भी नोड से कनेक्ट हो सकता है। यदि क्लाइंट द्वारा अनुरोधित कुंजी कनेक्टेड नोड के हैश स्लॉट से संबंधित नहीं है, तो नोड MOVED रीडायरेक्शन त्रुटि के साथ उत्तर देगा।
आधुनिक Redis क्लाइंट लाइब्रेरी (जैसे Java के लिए Jedis) क्लस्टर-जागरूक होती हैं। वे इन रीडायरेक्शन को स्वचालित रूप से इस प्रकार संभालती हैं:
- क्लस्टर की टोपोलॉजी सीखना (कौन-सा नोड किन हैश स्लॉट का स्वामी है)।
- किसी दी गई कुंजी के लिए सीधे सही नोड से कनेक्ट करना।
इससे डेवलपरों के लिए क्लस्टर के साथ इंटरैक्ट करना आश्चर्यजनक रूप से सहज हो जाता है।
Java क्लाइंट से कनेक्ट करना
आइए देखें कि Java क्लाइंट (Jedis लाइब्रेरी का उपयोग करते हुए) Redis Cluster से कैसे कनेक्ट होता है। पूरे क्लस्टर की टोपोलॉजी खोजने के लिए क्लाइंट को क्लस्टर के कम-से-कम एक नोड की जानकारी होना आवश्यक है।
इस उदाहरण को चलाकर देखें:
import redis.clients.jedis.HostAndPort;
import redis.clients.jedis.JedisCluster;
import java.util.HashSet;
import java.util.Set;
public class RedisClusterClient {
public static void main(String[] args) {
// Provide at least one node to connect to the cluster
Set<HostAndPort> jedisClusterNodes = new HashSet<>();
jedisClusterNodes.add(new HostAndPort("127.0.0.1", 7000)); // Example node
try (JedisCluster jc = new JedisCluster(jedisClusterNodes)) {
System.out.println("Connected to Redis Cluster!");
String key = "user:100:name";
String value = "Alice";
jc.set(key, value);
System.out.println("Set: " + key + " = " + value);
String retrievedValue = jc.get(key);
System.out.println("Get: " + key + " = " + retrievedValue);
// Client automatically handles sharding for different keys
jc.set("product:5:price", "99.99");
System.out.println("Set: product:5:price = " + jc.get("product:5:price"));
} catch (Exception e) {
System.err.println("Error connecting to Redis Cluster: " + e.getMessage());
System.err.println("Ensure a Redis Cluster is running on 127.0.0.1:7000");
}
}
}रीशार्डिंग और पुनर्संतुलन
Redis Cluster की एक शक्तिशाली सुविधा रीशार्डिंग करने की क्षमता है। इसका अर्थ है कि क्लस्टर के चलते रहने के दौरान आप उसमें नोड गतिशील रूप से जोड़ या हटा सकते हैं।
- नए मास्टर नोड जोड़ने पर, आप मौजूदा मास्टर से हैश स्लॉट नए मास्टर को स्थानांतरित कर सकते हैं।
- नोड हटाने पर, उनके हैश स्लॉट अन्य बचे हुए मास्टर को स्थानांतरित किए जा सकते हैं।
इससे आप बिना डाउनटाइम के अपने क्लस्टर संसाधनों को लचीले ढंग से बढ़ा या घटा सकते हैं।
क्लस्टर में दोष-सहिष्णुता
Redis Cluster मजबूत दोष-सहिष्णुता प्रदान करता है:
- यदि कोई मास्टर नोड विफल हो जाता है, तो उसकी निर्धारित रेप्लिका को स्वचालित रूप से नया मास्टर बना दिया जाता है।
- क्लस्टर काम करता रहता है, क्योंकि विफल मास्टर द्वारा पहले प्रबंधित किए गए हैश स्लॉट अब उसकी बनाई गई रेप्लिका संभालती है।
हालाँकि, यदि कोई मास्टर और उसकी सभी रेप्लिकाएँ विफल हो जाएँ, तो उस मास्टर के हैश स्लॉट द्वारा प्रबंधित डेटा का भाग अनुपलब्ध हो जाता है और क्लस्टर काम करना बंद कर सकता है, जब तक कि उसे अन्यथा कॉन्फ़िगर न किया गया हो (cluster-require-full-coverage no)।
अपने क्लस्टर का ज्ञान जाँचें
निम्नलिखित में से Redis Cluster के प्राथमिक लाभ या विशेषताएँ कौन-सी हैं?
पुनरावलोकन: स्केलिंग के लिए Redis Cluster
इस पाठ में हमने Redis Cluster को समझा, जो Redis को क्षैतिज रूप से स्केल करने का एक शक्तिशाली समाधान है। हमने सीखा:
- क्लस्टर कई मास्टर नोड में डेटा वितरित करने के लिए शार्डिंग का उपयोग करता है।
- हैश स्लॉट निर्धारित करते हैं कि कौन-सा नोड किस कुंजी को संग्रहीत करता है।
- क्लाइंट लाइब्रेरी क्लस्टर-जागरूक होती हैं और रीडायरेक्शन को स्वचालित रूप से संभालती हैं।
- मास्टर के विफल होने पर रेप्लिकाओं को मास्टर बनाकर यह दोष-सहिष्णुता प्रदान करता है।
- रीशार्डिंग की क्षमता गतिशील स्केलिंग की सुविधा देती है।
जब कोई एक Redis इंस्टेंस आपके एप्लिकेशन की डेटा आकार या थ्रूपुट संबंधी आवश्यकताओं को पूरा नहीं कर पाता, तब Redis Cluster आपके लिए सबसे उपयोगी विकल्प है।
एआई शिक्षक के साथ Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “शार्डिंग के लिए Redis Cluster” पाठ निःशुल्क है?
हाँ — Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “शार्डिंग के लिए Redis Cluster” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“शार्डिंग के लिए Redis Cluster” में मैं क्या सीखूँगा?
क्षैतिज स्केलिंग और दोष-सहनशीलता प्राप्त करने के लिए कई नोड पर डेटा शार्ड करने हेतु Redis Cluster लागू कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“शार्डिंग के लिए Redis Cluster” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Redis कैशिंग और संदेश-विनिमय (Pub/Sub, Streams) पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- अतिरेक के लिए Redis प्रतिकृति
- उच्च उपलब्धता के लिए Redis Sentinel
- शार्डिंग के लिए Redis Cluster
- Client-side connection resilience