रेडिस बनाम ज़ुकीपर


25

यह मूर्खतापूर्ण लगता है कि इन दोनों सर्वरों की तुलना यह देखते हुए कि वे बहुत अलग चीजों के लिए हैं। लेकिन अगर आप इसके बारे में सोचते हैं, तो वे बहुत सारी समान चीजें कर सकते हैं: स्टोर कॉन्फ़िगरेशन डेटा, वितरित लॉकिंग, कतारिंग, आदि।

मुझे रेडिस का एक उदाहरण मिला है जो मैं कुछ उत्पादन-संबंधित चीजों के लिए उपयोग कर रहा हूं, लेकिन सर्वरों के बीच कुछ सरल तुल्यकालन करना चाहता हूं (ज्यादातर कॉन्फ़िगरेशन परिवर्तन जिन्हें कोड को पुश करने की आवश्यकता नहीं होती है और सर्वर के बीच सरल लॉकिंग होती है)। ज़ुकीपर मुझे क्या देता है कि रेडिस नहीं करेगा?


रेडिस कॉन्फ़िगरेशन के लिए (विशेष रूप से) नहीं है। वे काफी अलग उत्पाद हैं।
रीन हेनरिच

4
क्यूं कर? हम कॉन्फ़िगरेशन के लिए PostgreSQL का उपयोग कर रहे हैं। कॉन्फ़िगरेशन व्यावसायिक तर्क से इतना अलग क्या है?
दिमित्री नेगोडा

जवाबों:


26

हम काम में Redis और Zookeeper दोनों का उपयोग करते हैं इसलिए यह पहले हाथ के अनुभव से है

रेडिस तेज है; वास्तव में, वास्तव में तेजी से। यह तुरंत सुसंगत भी है, इसलिए यह तेजी से बढ़ते डेटा सेट के लिए अच्छा है। नकारात्मक पक्ष यह है कि एक सर्वर पर चल रहा है, अगर यह विफल हो जाता है तो आप तब तक लेखन एक्सेस खो देते हैं जब तक कि कोई अन्य सर्वर नहीं होता है। सर्वर को रिप्लेस करना एक मैन्युअल ऑपरेशन है जब तक कि आप इसे अपने आप स्वचालित न करें। (यदि आप किसी दास उदाहरण को कॉन्फ़िगर करते हैं तो आप अपने डेटा तक रीड एक्सेस प्राप्त कर सकते हैं)।

ज़ुकाइपर में तुरंत स्थिरता भी शामिल है। यह आधे के रूप में जल्दी नहीं है, लेकिन यह विफलता के चेहरे में स्वचालित रूप से (जहां संभव हो) ठीक हो जाएगा, इसलिए यदि आपको निरंतर लिखने की आवश्यकता है, तब भी जब आपके सर्वर आप पर विफल हो जाते हैं, तो आप ज़ुकाइपर का उपयोग करना चाहेंगे।

मेरी सलाह है, समन्वय के लिए ज़ुकीपर का उपयोग करें: ट्रैकिंग जो नोड्स सक्रिय हैं, एक समूह के बीच नेता का चुनाव, आदि डेटासेट के लिए रेडिस का उपयोग करें जिन्हें तेज़ लिखने की ज़रूरत है लेकिन जहां कभी-कभी आउटेज एक आपदा नहीं है। उदाहरण के लिए वेब पेजों के लिए काउंटरों को मारो।


मैं वर्तमान में एक परियोजना पर काम कर रहा हूं और सोच रहा था कि ज़ुकीपर जाने का रास्ता होने वाला था। यदि आपके पास कोई और जानकारी है जिसे आप कहीं साझा कर सकते हैं तो यह अद्भुत होगा। हम एक दिन में कई विज्ञापन आदान-प्रदान और लगभग 4 बिलियन + घटनाओं पर नज़र रख रहे हैं। हम अपने फ्रंट एंड सर्वर को फिर से डिज़ाइन करना चाह रहे हैं और ट्रैकिंग, काउंटिंग, न्यूनतम वेटिंग आदि के बारे में जानकारी स्टोर करने के लिए ज़ुकीपर को देख रहे थे। मैं रेडिस की गति को देख सकता हूँ, लेकिन मेरे अनुभव में यह पदानुक्रमित संरचना का अभाव है जिसे हम ज़ुकीपर के साथ उपयोग करना चाह रहे थे। क्या 2012 के बाद से 3 साल में आपका रुख बदल गया है?
क्रिस Hinshaw

@ChrisHinshaw मैं उसी मुद्दे का सामना कर रहा हूं। एक वितरित संसाधन प्रबंधक के लिए Redis और Zookeeper दोनों को ध्यान में रखते हुए दोनों वितरित ताले और perfomance की आवश्यकता होती है। क्या आप कोई प्रतिक्रिया देना चाहेंगे?
राफेल सारावा

मैं अब इसे फिर से लिख रहा हूं। मैं गति के कारण लालियों के साथ चला गया। ज़ुकीपर के साथ कुछ प्रदर्शन समस्याएं थीं लेकिन मुझे मुद्दों की याद नहीं है। हम मैट्रिक्स और काउंट्स के आधार पर टाइमरीज़ डेटा संग्रहीत कर रहे हैं। मैं कॉल की संख्या को सीमित करने के लिए प्रत्येक समय अवधि के लिए गणना को अद्यतन करने के लिए लुआ स्क्रिप्ट का उपयोग कर रहा हूं। एक उदाहरण है कि हमारे पास br: 1: 2: 3: 4 के रूप में बोली अनुरोधों के लिए एक हैश कुंजी है, जहां संख्याएं मीट्रिक के पदानुक्रम का प्रतिनिधित्व करती हैं: एजेंसी: विज्ञापनदाता: अभियान: विज्ञापन। हैश में मान वर्ष हैं: माह: दिन: घंटा: मिनट। अपनी लुआ स्क्रिप्ट में मैं प्रत्येक के लिए मायने रखता हूं
क्रिस हिंन्शॉ

स्लाइस के समय इसलिए मेरी स्क्रिप्ट y: m: d: h को कोलन से विभाजित करती है और प्रत्येक स्लाइस के लिए योग को अपडेट करती है। इस तरह मैं एक hscan का उपयोग कर सकता हूं या किसी भी समय के लिए चाबियों की एक सूची प्राप्त कर सकता हूं। रेडिस में सबसे महत्वपूर्ण बात यह है कि चाबियों के लिए एक श्रेणीबद्ध मॉडल के साथ आना है। भविष्य में किसी समय मैं एक कैसेंड्रा स्टोर के साथ rdd को स्पार्क करने के लिए यह सब स्थानांतरित करना चाहूंगा। अगर मेरे पास समय होता तो मैं स्पार्क स्ट्रीमिंग को बेंचमार्क पर लागू करता। मुझे लगता है कि यह रेडिस के बराबर होगा और एनालिटिक्स करने का लचीलापन देता है।
क्रिस Hinshaw
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.