क्या उनके पास Redis से MySQL में बड़ा डेटा डंप करने का कोई अन्य तरीका है?
Redis में गैर-अवरुद्ध और सुसंगत तरीके से डेटा का डंप उत्पन्न करने की संभावना (bgsave का उपयोग करके) है।
https://github.com/sripathikrishnan/redis-rdb-tools
आप श्रीपति कृष्णन के प्रसिद्ध पैकेज का उपयोग पायथन में रेडिस डंप फ़ाइल (आरडीबी) को पार्स करने के लिए कर सकते हैं, और MySQL इंस्टेंस को ऑफ़लाइन पॉप्युलेट कर सकते हैं। या आप रेडिस डंप को JSON प्रारूप में बदल सकते हैं, और किसी भी भाषा में स्क्रिप्ट लिख सकते हैं जिसे आप MySQL को पॉप्युलेट करना चाहते हैं।
यह समाधान केवल तभी दिलचस्प है जब आप रेडिस इंस्टेंस के संपूर्ण डेटा को MySQL में कॉपी करना चाहते हैं।
क्या रेडिस के पास कोई ट्रिगर सिस्टम है जिसका उपयोग मैं कतार प्रणाली जैसे क्रॉन्स से बचने के लिए कर सकता हूं?
रेडिस की कोई ट्रिगर अवधारणा नहीं है, लेकिन हर बार जब कुछ MySQL में कॉपी किया जाना चाहिए, तो कुछ भी आपको रेडिस कतार में घटनाओं को पोस्ट करने से नहीं रोकता है। उदाहरण के लिए, इसके बजाय:
# Add an item to a user shopping cart
RPUSH user:<id>:cart <item>
आप निष्पादित कर सकते हैं:
# Add an item to a user shopping cart
MULTI
RPUSH user:<id>:cart <item>
RPUSH cart_to_mysql <id>:<item>
EXEC
MULTI/EXEC ब्लॉक इसे परमाणु और सुसंगत बनाता है। फिर आपको कार्ट_to_mysql कतार (बीएलपीओपी कमांड का उपयोग करके) की वस्तुओं पर प्रतीक्षा कर रहे एक छोटे से डेमॉन को लिखना होगा। प्रत्येक हटाए गए आइटम के लिए, डेमॉन को Redis से संबंधित डेटा प्राप्त करना होता है, और MySQL इंस्टेंस को पॉप्युलेट करना होता है।
Redis हमारे स्टोर डेटा को फ़ाइल में विफल कर देता है, तो क्या उस डेटा को सीधे MySQL डेटाबेस में संग्रहीत करना संभव है?
मुझे यकीन नहीं है कि मैं यहां सवाल समझता हूं। लेकिन अगर आप उपरोक्त समाधान का उपयोग करते हैं, तो रेडिस अपडेट और MySQL अपडेट के बीच विलंबता काफी सीमित होगी। इसलिए यदि रेडिस विफल हो जाता है, तो आप केवल अंतिम ऑपरेशन (क्रॉन जॉब्स पर आधारित समाधान के विपरीत) को खो देंगे। हालांकि डेटा के प्रसार में 100% स्थिरता होना निश्चित रूप से संभव नहीं है।