Redis™* के लिए स्केलग्रिड को एक सर्वर से दूसरे सर्वर पर माइग्रेट करना एक सामान्य आवश्यकता है जो हम अपने ग्राहकों से सुनते हैं। दो मुख्य कारण जो हम सुनते हैं, वे अक्सर हार्डवेयर के स्थानांतरण, या सर्वरों के बीच डेटा को विभाजित करने की आवश्यकता के कारण होते हैं।
आमतौर पर, आप मानक Redis टूल का उपयोग करते हुए न्यूनतम डाउनटाइम के साथ माइग्रेट करना चाहते हैं। इस ब्लॉग पोस्ट में, हम ओपन-सोर्स टूल रेडिस-शेक का उपयोग करके प्रक्रिया के माध्यम से आपका मार्गदर्शन करेंगे। अलीबाबा-क्लाउड डेटाबेस विभाग में NoSQL टीम द्वारा विकसित और अनुरक्षित, Redis-Shake आपको Redis क्लस्टर के बीच Redis डेटा को आसानी से स्थानांतरित करने की अनुमति देता है। जबकि यह मार्गदर्शिका Redis™* परिनियोजन के लिए ScaleGrid की ओर अधिक लक्षित है, इस मार्गदर्शिका का उपयोग अन्य प्रकार के Redis परिनियोजन के साथ-साथ कुछ मामूली संशोधनों के लिए भी किया जा सकता है।
बिना किसी हलचल के, चलिए माइग्रेशन गाइड के साथ शुरुआत करते हैं!
आवश्यकताएं
माइग्रेशन करने के लिए आपको एक Linux या Windows मशीन की आवश्यकता होगी। (यदि आवश्यक हो, यह या तो स्रोत या लक्ष्य मशीन हो सकता है)।
जारी रखने से पहले सुनिश्चित करने के लिए एक महत्वपूर्ण बात यह है कि रेडिस-शेक अभी एसएसएल-सक्षम क्लस्टर का समर्थन नहीं करता है। कृपया सुनिश्चित करें कि स्रोत और लक्ष्य क्लस्टर दोनों एसएसएल-सक्षम नहीं हैं।
फ़ायरवॉल नियम
सुनिश्चित करें कि आपने अपने Linux/Windows मशीन को अपने स्रोत और लक्ष्य क्लस्टर दोनों से कनेक्ट करने की अनुमति देने के लिए एक फ़ायरवॉल नियम बनाया है। इसे स्केलग्रिड पर कैसे सेट करें, इस बारे में अधिक जानकारी के लिए इस लिंक को देखें।
Redis-Shake डाउनलोड करें
इस लिंक से नवीनतम/स्थिर संस्करण चुनने के बाद Linux/Windows मशीन पर Redis-Shake को डाउनलोड और डीकंप्रेस करें। आप आज के नवीनतम संस्करण (v2.1.1) को डाउनलोड करने के लिए नीचे दिए गए आदेशों का भी उपयोग कर सकते हैं।
wget https://github.com/alibaba/RedisShake/releases/download/release-v2.1.1-20210903/release-v2.1.1-20210903.tar.gz tar -xvzf release-v2.1.1-20210903.tar.gz cd release-v2.1.1-20210903/
आगे हम आपको Redis-Shake के लिए दो अलग-अलग उपयोग के मामले दिखाएंगे।
- एक स्टैंडअलोन और मास्टर-स्लेव से डेटा माइग्रेट करना
- क्लस्टर मोड में डेटा माइग्रेट करना
डेटा माइग्रेट करना - स्टैंडअलोन और मास्टर-स्लेव
इस अनुभाग में, हम आपको दिखाएंगे कि इन विभिन्न सेटअपों में अपना डेटा कैसे माइग्रेट करें:
- स्टैंडअलोन से स्टैंडअलोन
- मास्टर-गुलाम से मास्टर-दास तक
- मास्टर-दास के लिए स्टैंडअलोन (और इसके विपरीत)
अपने स्रोत और लक्ष्य क्लस्टर दोनों से क्लस्टर विवरण पृष्ठ में अवलोकन टैब से निम्नलिखित जानकारी को नोट करें:
- होस्टनाम :कनेक्शन स्ट्रिंग [होस्टनाम:पोर्ट] प्रारूप में है। यह कुछ इस तरह दिखना चाहिए:EX-redms-00-redis-master.example.domain.io
- (मास्टर-स्लेव क्लस्टर के मामले में, हम मास्टर से जुड़ेंगे)।
- पोर्ट :6379
- पासवर्ड :आप अपना पासवर्ड ढूंढ सकते हैं और इसे क्रेडेंशियल के अंतर्गत कंसोल से रीसेट कर सकते हैं
अपनी "redis-shake.conf" फाइल को मुख्य फोल्डर में खोलें और निम्नलिखित चर संपादित करें:
source.type =स्टैंडअलोन
source.address =
source.password_raw =
target.type =स्टैंडअलोन
target.address =
target.password_raw =
स्रोत और लक्ष्य क्लस्टर के बीच डेटा को सिंक्रनाइज़ करने के लिए निम्न कमांड चलाएँ:
$ ./redis-shake -type sync -conf redis-shake.conf
लॉग में निम्नलिखित जानकारी देखने तक प्रतीक्षा करें:
सिंक rdb हो गया।
इसका मतलब है कि पूर्ण सिंक्रनाइज़ेशन पूरा हो गया है और वृद्धिशील सिंक्रनाइज़ेशन शुरू हो गया है।
5. इंक्रीमेंटल सिंक रोकें
यदि +writeBytes=0
लंबे समय तक देखा जाता है, तो इसका मतलब है कि कोई नया डेटा नहीं बढ़ाया गया है। आप Ctrl+C . दबाकर इंक्रीमेंटल सिंक्रोनाइज़ेशन को रोक सकते हैं . यह कुछ इस तरह दिखना चाहिए:
सिंक:+forwardCommands=0 +filterCommands=0 +writeBytes=0
अब हमारे सहायता दस्तावेज़ के लिए इस लिंक का अनुसरण करें जो आपको redis-cli का उपयोग करके दोनों समूहों से जुड़ने में मदद करता है और फिर info keyspace<का उपयोग करके आपके क्लस्टर के बीच कुंजियों की संख्या का मिलान करता है। /कोड> दोनों समूहों पर कमांड।
और बस! अब आपने रेडिस-शेक का उपयोग करके डेटा को एक क्लस्टर से दूसरे क्लस्टर में सफलतापूर्वक स्थानांतरित कर दिया है। यदि आपके पास क्लस्टर मोड में क्लस्टर हैं, तो हो सकता है कि आप इस गाइड में हमारे अगले भाग को देखना चाहें कि यदि आप उस प्रकार के क्लस्टर को चला रहे हैं तो आपको क्या करने की आवश्यकता है।
डेटा माइग्रेट करना - क्लस्टर मोड
इस खंड में, हम आपको दिखाएंगे कि क्लस्टर मोड में एक Redis परिनियोजन से दूसरे क्लस्टर में डेटा माइग्रेट कैसे करें।
<एच4>1. जानकारी इकट्ठा करेंअपने स्रोत और लक्ष्य क्लस्टर दोनों से क्लस्टर विवरण पृष्ठ में अवलोकन टैब से निम्नलिखित जानकारी को नोट करें:
- होस्टनाम :कनेक्शन स्ट्रिंग [होस्टनाम1:पोर्ट], [होस्टनाम2:पोर्ट], [होस्टनाम3:पोर्ट] प्रारूप में है। यह कुछ इस तरह दिखना चाहिए:EX-redms-03-redis-master.example.domain.io, EX-redms-06-redis-master.example.domain.io, EX-redms-09-redis- Master.example.domain.io
- पोर्ट :6379
- पासवर्ड :आप अपना पासवर्ड ढूंढ सकते हैं और इसे क्रेडेंशियल के अंतर्गत कंसोल से रीसेट कर सकते हैं
अपनी "redis-shake.conf" फाइल को मुख्य फोल्डर में खोलें और निम्नलिखित चर संपादित करें:
source.type =क्लस्टर
source.address =
source.password_raw =
target.type =स्टैंडअलोन
target.address =
target.password_raw =
स्रोत और लक्ष्य क्लस्टर के बीच डेटा को सिंक्रनाइज़ करने के लिए निम्न कमांड चलाएँ:
$ ./redis-shake -type sync -conf redis-shake.conf
लॉग में निम्नलिखित जानकारी देखने तक प्रतीक्षा करें:
सिंक rdb हो गया।
इसका मतलब है कि पूर्ण सिंक्रनाइज़ेशन पूरा हो गया है और वृद्धिशील सिंक्रनाइज़ेशन शुरू हो गया है।
5. इंक्रीमेंटल सिंक रोकें
यदि +writeBytes=0
लंबे समय तक देखा जाता है, तो इसका मतलब है कि कोई नया डेटा नहीं बढ़ाया गया है। आप Ctrl+C . दबाकर इंक्रीमेंटल सिंक्रोनाइज़ेशन को रोक सकते हैं . यह कुछ इस तरह दिखना चाहिए:
सिंक:+forwardCommands=0 +filterCommands=0 +writeBytes=0
अब हमारे सहायता दस्तावेज़ के लिए इस लिंक का अनुसरण करें जो आपको redis-cli का उपयोग करके दोनों समूहों से जुड़ने में मदद करता है और फिर info keyspace<का उपयोग करके आपके क्लस्टर के बीच कुंजियों की संख्या का मिलान करता है। /कोड> दोनों समूहों पर कमांड।
और बस! अब आपने रेडिस-शेक का उपयोग करके डेटा को क्लस्टर मोड में एक क्लस्टर से दूसरे क्लस्टर में सफलतापूर्वक स्थानांतरित कर दिया है। रेडिस-शेक और इसकी क्षमताओं के बारे में अधिक जानकारी के लिए, अधिक जानने और नवीनतम संस्करण प्राप्त करने के लिए उनके गिटहब पेज पर जाएं।
|
*Redis, Redis Labs Ltd का एक ट्रेडमार्क है। इसमें कोई भी अधिकार Redis Labs Ltd के लिए आरक्षित है। स्केलग्रिड द्वारा कोई भी उपयोग केवल संदर्भात्मक उद्देश्यों के लिए है और किसी प्रायोजन, समर्थन का संकेत नहीं देता है। या रेडिस और स्केलग्रिड के बीच संबद्धता।