2013-02-04 15 views
6

मैं REDIS DB के लिए कुछ सवाल हैं:Redis और डेटा अखंडता

  • कैसे डेटा अखंडता को सुनिश्चित करने?
  • क्या वहां अखंडता सुनिश्चित करने के तरीके हैं?
  • क्या रेडिस प्राथमिक कुंजी है? या विकल्प
  • विदेशी कुंजी?
  • संदर्भित ईमानदारी?
  • एसीआईडी ​​गुणों को कैसे कार्यान्वित किया जा सकता है?

कभी एक संभव प्रतिक्रिया

सादर के लिए धन्यवाद - एस.बी. -

उत्तर

11

Redis स्टेरॉयड पर एक कुंजी/मान की दुकान, नहीं एक संबंधपरक डेटाबेस है।

डेटा अखंडता सुनिश्चित करने के लिए कैसे? क्या वहां अखंडता सुनिश्चित करने के तरीके हैं?

रेडिस "सुरक्षित लेकिन बहुत कुशल" तक "गैर सुरक्षित लेकिन बहुत कुशल" से विभिन्न दृढ़ता विकल्पों का समर्थन करता है। पर अधिक जानकारी देखें:

Redis भी पूरा नोड विफलता के मामले में डेटा की रक्षा के लिए एक मास्टर-दास प्रतिकृति तंत्र का समर्थन करता है।

एक एकल रेडिस उदाहरण हमेशा डेटा स्थिरता प्रदान करता है (सीएपी प्रमेय के अर्थ में, एसीआईडी ​​के भाव में नहीं)।

क्या रेडिस प्राथमिक कुंजी है? या विकल्प

रेडिस एक कुंजी/मूल्य स्टोर है। सभी वस्तुओं की एक कुंजी है। प्राथमिक या माध्यमिक कुंजी की कोई अवधारणा नहीं है।

विदेशी कुंजी? संदर्भित ईमानदारी?

ये संबंधपरक अवधारणाएं हैं। रेडिस एक रिलेशनल डेटाबेस नहीं है। विदेशी कुंजी का मतलब कुछ भी नहीं है (रेडिस के साथ कोई टेबल अवधारणा नहीं है)। रेडिस द्वारा रेफरेंसियल अखंडता को बनाए रखा नहीं जाता है, और क्लाइंट एप्लिकेशन द्वारा लागू किया जाना चाहिए।

एसीआईडी ​​गुणों को कैसे कार्यान्वित किया जा सकता है?

उन्हें लागू नहीं किया जाना चाहिए क्योंकि रेडिस एक लेनदेन डेटाबेस नहीं है। रेडिस के साथ कोई रोलबैक तंत्र नहीं है।हालांकि, एसिड संपत्तियों की अवधि में:

  • Atomicity और स्थिरता एक सर्वर साइड लुआ स्क्रिप्ट
  • अलगाव हमेशा आदेश के स्तर पर की गारंटी है के साथ आदेशों के एक समूह के लिए गारंटी दी जा सकती, और यह भी एक के लिए गारंटी दी जा सकती आदेश के समूह एक बहु/EXEC ब्लॉक या एक लुआ स्क्रिप्ट का उपयोग कर
  • जब AOF (व्यवस्थित fsync के साथ) सक्रिय है टिकाऊपन गारंटी दी जा सकती
+0

'टिकाऊपन गारंटी दी जा सकती है जब AOF (व्यवस्थित fsync के साथ)' <सक्रिय होता है - एंटीरेज़ लिंक के लिए आपका स्रोत है (महान लिंक के लिए धन्यवाद वह बीटीडब्ल्यू) क्या आप जानते हैं कि प्रदर्शन पर किस प्रकार का प्रभाव है? यानी यह एसडीसी/मोंगो के समान लीग में फिर से लाता है? – wal

+0

प्रदर्शन पर प्रभाव विनाशकारी है। कोई भी आरडीबीएमएस या नोएसक्यूएल इंजन आगे लिखने वाला लॉग इस कॉन्फ़िगरेशन में रेडिस से काफी बेहतर प्रदर्शन करेगा। ऐसा इसलिए है क्योंकि रेडिस एकल थ्रेडेड है। इस कॉन्फ़िगरेशन में, fsync सीधे ईवेंट लूप में किया जाता है। तो किसी भी fsync व्यवस्थित रूप से सभी कनेक्शन ब्लॉक। –

+0

'ऐसा इसलिए है क्योंकि रेडिस एकल-थ्रेडेड है। इस कॉन्फ़िगरेशन में, fsync सीधे ईवेंट लूप में किया जाता है 'क्या आप इसके बारे में निश्चित हैं? रेडिस पर्सिस्टेंस लिंक का कहना है, "एओएफ को भी फोर्क() की आवश्यकता होती है लेकिन आप ट्यून कर सकते हैं कि आप टिकाऊपन पर किसी व्यापार-बंद किए बिना कितनी बार अपने लॉग को फिर से लिखना चाहते हैं।" –

संबंधित मुद्दे