लेख निर्देशिका
RDB चे पूर्ण नाव आहेRedis database
.
- नावाप्रमाणेच, RDB हा डेटा संग्रहित करण्यासाठी वापरला जाणारा रेडिस डेटाबेस आहे.
- म्हणून, RDB चिकाटीद्वारे, Redis मेमरीमध्ये संग्रहित केलेला डेटा RDB फाइलवर लिहिला जातो आणि दृढता प्राप्त करण्यासाठी डिस्कवर जतन केला जातो.
- रेडिसचे वैशिष्ट्य म्हणजे ते डेटा टिकवून ठेवू शकते, म्हणजे कोणताही डेटा गमावला नाही याची खात्री करण्यासाठी मेमरीमध्ये डेटा डिस्कवर लिहू शकतो आणि डिस्कमधून मेमरीमध्ये डेटा लोड देखील करू शकतो.
सुरुवातीला रेडिसचे ऑपरेशन्स सर्व मेमरीवर आधारित आहेत, त्यामुळे कार्यप्रदर्शन खूप जास्त आहे, परंतु एकदा प्रोग्राम बंद झाल्यानंतर, डेटा गमावला जातो.
म्हणून, आम्हाला विशिष्ट अंतराने डिस्कवर इन-मेमरी डेटा लिहावा लागेल, जे शब्दशैलीमध्ये स्नॅपशॉट आहे.
पुनर्संचयित करताना, स्नॅपशॉट फाइल थेट मेमरीमध्ये लिहिली जाते.
हे रेडिस आणि मेमकॅशेडमधील मुख्य फरकांपैकी एक आहे, कारण मेमकॅशेडमध्ये टिकून राहण्याची क्षमता नाही.
रेडिस मेमरी डेटा टिकून राहण्यासाठी, रेडिस आम्हाला खालील पद्धती प्रदान करते:
- स्नॅपशॉट पद्धत (RDB, Redis DataBase): एका विशिष्ट क्षणी बायनरी स्वरूपात डिस्कवर मेमरी डेटा लिहा;
- फक्त फाइल जोडणे (एओएफ, केवळ फाइल जोडणे), सर्व ऑपरेशन आदेश रेकॉर्ड करा आणि मजकूर स्वरूपात फाइलला जोडणे;
- हायब्रिड पर्सिस्टन्स, रेडिस 4.0 नंतर एक नवीन पद्धत, हायब्रिड पर्सिस्टन्स RDB आणि AOF चे फायदे एकत्र करते.लिहिताना, प्रथम वर्तमान डेटा आरडीबीच्या स्वरूपात फाइलच्या सुरूवातीस लिहा आणि त्यानंतरच्या ऑपरेशन कमांडस फाइलमध्ये एओएफच्या स्वरूपात जतन करा, जे केवळ रेडिस रीस्टार्टची गती सुनिश्चित करू शकत नाही तर कमी देखील करू शकते. डेटा गमावण्याचा धोका.
कारण प्रत्येक पर्सिस्टन्स स्कीममध्ये विशिष्ट वापर परिस्थिती असते.
Redis RDB मेमरी डेटा पर्सिस्टन्स ऑपरेशन मोड
- RDB (Redis DataBase) ही बायनरी स्वरूपात डिस्कवर विशिष्ट क्षणी मेमरी स्नॅपशॉट (स्नॅपशॉट) लिहिण्याची प्रक्रिया आहे.
- मेमरी स्नॅपशॉट्स हे आम्ही वर सांगितले आहे.हे एका विशिष्ट क्षणी मेमरीमधील डेटाच्या स्टेट रेकॉर्डचा संदर्भ देते.
- हे फोटो काढण्यासारखेच आहे. जेव्हा तुम्ही एखाद्या मित्राचा फोटो घेता, तेव्हा फोटो त्वरित मित्राच्या सर्व प्रतिमा रेकॉर्ड करू शकतो.
- RDB ट्रिगर करण्याचे दोन मार्ग आहेत: एक मॅन्युअल ट्रिगरिंग आहे आणि दुसरा स्वयंचलित ट्रिगरिंग आहे.
RDB व्यक्तिचलितपणे ट्रिगर करा
व्यक्तिचलितपणे चिकाटी ट्रिगर करण्यासाठी दोन ऑपरेशन्स आहेत:save
和bgsave
.
त्यांच्यातील मुख्य फरक म्हणजे रेडिस मुख्य थ्रेडची अंमलबजावणी रोखायची की नाही.
1. सेव्ह कमांड
क्लायंटच्या बाजूने सेव्ह कमांड कार्यान्वित केल्याने रेडिसचा टिकाव सुरू होईल, परंतु ते रेडिसला ब्लॉकिंग स्थितीत देखील बनवेल. जोपर्यंत RDB कायम राहते तोपर्यंत ते इतर क्लायंटद्वारे पाठवलेल्या आदेशांना प्रतिसाद देणार नाही, म्हणून ते सावधगिरीने वापरले पाहिजे. उत्पादन वातावरण.
127.0.0.1:6379> save OK 127.0.0.1:6379>
कमांड कार्यान्वित करण्याची प्रक्रिया आकृतीमध्ये दर्शविली आहे
2. bgsave कमांड
- bgsave (बॅकग्राउंड सेव्ह) हे बॅकग्राउंड सेव्ह आहे.
- यामधील आणि सेव्ह कमांडमधला सर्वात मोठा फरक म्हणजे bgsave चिकाटीसाठी चाइल्ड प्रोसेस फोर्क करेल.
- संपूर्ण प्रक्रिया फक्त तेव्हाच होते जेव्हा मूल प्रक्रिया काटा असते.फक्त थोडा अडथळा आहे.
- मूल प्रक्रिया तयार केल्यानंतर, Redis ची मुख्य प्रक्रिया इतर क्लायंटच्या विनंतीस प्रतिसाद देऊ शकते.
संपूर्ण प्रक्रिया अवरोधित करूनsave
आदेशाच्या तुलनेतbgsave
कमांड आमच्यासाठी वापरण्यासाठी अधिक योग्य आहे.
127.0.0.1:6379> bgsave Background Saving started # 提示开始后台保存 127.0.0.1:6379>
RDB स्वयंचलितपणे ट्रिगर करा
मॅन्युअल ट्रिगरिंगबद्दल बोलल्यानंतर, स्वयंचलित ट्रिगरिंग पाहू.आम्ही कॉन्फिगरेशन फाइलमध्ये स्वयंचलित ट्रिगरिंगसाठी अटी कॉन्फिगर करू शकतो.
1. mn वाचवा
- सेव्ह mn म्हणजे m सेकंदात, n की बदलल्यास, पर्सिस्टन्स आपोआप ट्रिगर होतो.रेडिस कॉन्फिगरेशन फाइलमध्ये m आणि n पॅरामीटर्स आढळू शकतात.
- उदाहरणार्थ, 60 1 जतन करा म्हणजे 60 सेकंदांच्या आत, जोपर्यंत एक कळ बदलेल, तोपर्यंत RDB टिकून राहणे ट्रिगर केले जाईल.
- आपोआप ट्रिगर होणा-या पर्सिस्टन्सचे सार हे आहे की सेट ट्रिगर अटी पूर्ण झाल्यास, Redis आपोआप एकदा bgsave कमांड कार्यान्वित करेल.
टीप: जेव्हा अनेक सेव्ह mn कमांड सेट केल्या जातात, तेव्हा कोणतीही एक अट टिकून राहते.
उदाहरणार्थ, आम्ही खालील दोन save mn कमांड सेट करतो:
save 60 10 save 600 20
- रेडिस की व्हॅल्यू 60 च्या आत 10 वेळा बदलते तेव्हा, टिकून राहणे ट्रिगर केले जाईल;
- जर Redis की 60 च्या आत बदलली, आणि जर मूल्य 10 पेक्षा कमी वेळा बदलले, तर Redis 600 च्या आत Redis की कमीत कमी 20 वेळा सुधारित केली गेली आहे की नाही हे निर्धारित करेल आणि तसे असल्यास, सक्तीला ट्रिगर करा.
2. फ्लशल
- फ्लशल कमांड रेडिस डेटाबेस फ्लश करण्यासाठी वापरली जाते.
- हे उत्पादन वातावरणात सावधगिरीने वापरले पाहिजे.
- जेव्हा रेडिस फ्लशल कमांड कार्यान्वित करते, तेव्हा ते स्वयंचलित चिकाटी ट्रिगर करते आणि RDB फाइल्स साफ करते.
3. मास्टर-स्लेव्ह सिंक्रोनाइझेशन ट्रिगर
रेडिस मास्टर-स्लेव्ह प्रतिकृतीमध्ये, जेव्हा स्लेव्ह नोड संपूर्ण प्रतिकृती ऑपरेशन करते, तेव्हा मास्टर नोड RDB फाइल स्लेव्ह नोडवर पाठवण्यासाठी bgsave कमांड कार्यान्वित करेल. ही प्रक्रिया स्वयंचलितपणे Redis पर्सिस्टन्सला ट्रिगर करते.
Redis कमांडद्वारे वर्तमान कॉन्फिगरेशन पॅरामीटर्सची क्वेरी करू शकते.
क्वेरी कमांडचे स्वरूप आहे:config get xxx
उदाहरणार्थ, जर तुम्हाला RDB फाइलचे स्टोरेज नाव सेटिंग मिळवायचे असेल, तर तुम्ही वापरू शकता config get dbfilename
.
अंमलबजावणीचा प्रभाव खालीलप्रमाणे आहे:
127.0.0.1:6379> config get dbfilename 1) "dbfilename" 2) "dump.rdb"
लोडिंग पूर्ण होईपर्यंत RDB फाइल लोड करताना Redis सर्व्हर ब्लॉक करेल, त्यामुळे बराच वेळ लागू शकतो आणि वेबसाइटवर प्रवेश करता येणार नाही.
जर तुम्हाला Redis ची RDB कॅशे फाइल dump.rdb व्यक्तिचलितपणे हटवायची असेल, तर तुम्ही dump.rdb फाइलचा स्टोरेज मार्ग शोधण्यासाठी खालील आदेश वापरू शकता▼
find / -name dump.rdb
- त्यानंतर, SSH द्वारे dump.rdb कॅशे फाइल व्यक्तिचलितपणे हटवा.
Redis RDB चे कॉन्फिगरेशन सेट करते
RDB चे कॉन्फिगरेशन सेट करण्याबाबत, तुम्ही खालील दोन मार्ग वापरू शकता:
- Redis कॉन्फिगरेशन फाइल व्यक्तिचलितपणे सुधारित करा
- कमांड लाइन सेटिंग्ज वापरा, RDB फाइलमध्ये बदल करण्यासाठी कॉन्फिगरेशन सेट dir "/usr/data" ही स्टोरेज कमांड आहे.
टीप: redis.conf मधील कॉन्फिगरेशन कॉन्फिगरेशन get xxx द्वारे मिळवता येते आणि कॉन्फिगरेशन सेट xxx व्हॅल्यू द्वारे सुधारित केले जाऊ शकते आणि Redis कॉन्फिगरेशन फाइल मॅन्युअली सुधारण्याची पद्धत जागतिक स्तरावर प्रभावी आहे, म्हणजेच, Redis सर्व्हर रीस्टार्ट करून सेट केलेले पॅरामीटर्स बदलणार नाहीत. हरवले, परंतु कमांड वापरून सुधारित केले, रेडिस रीस्टार्ट झाल्यानंतर ते गमावले जाईल.
तथापि, जर तुम्हाला Redis कॉन्फिगरेशन फाइल तात्काळ प्रभावी होण्यासाठी मॅन्युअली सुधारायची असेल, तर तुम्हाला Redis सर्व्हर रीस्टार्ट करण्याची आवश्यकता आहे, आणि कमांड पद्धतीसाठी Redis सर्व्हर रीस्टार्ट करण्याची आवश्यकता नाही.
RDB फाइल पुनर्प्राप्ती
Redis सर्व्हर सुरू झाल्यावर, जर RDB फाइल dump.rdb Redis रूट निर्देशिकेत अस्तित्वात असेल, तर Redis सतत डेटा पुनर्संचयित करण्यासाठी RDB फाइल आपोआप लोड करेल.
रूट निर्देशिकेत dump.rdb फाइल नसल्यास, कृपया dump.rdb फाइल प्रथम Redis च्या रूट निर्देशिकेत हलवा.
अर्थात, रेडिस सुरू झाल्यावर लॉग माहिती असते, जी आरडीबी फाइल लोड केली आहे की नाही हे दर्शवेल.
लोडिंग पूर्ण होईपर्यंत RDB फाइल लोड करताना Redis सर्व्हर ब्लॉक करतो.
आता आम्हाला माहित आहे की RDB चिकाटी दोन प्रकारे विभागली गेली आहे: मॅन्युअल ट्रिगरिंग आणि ऑटोमॅटिक ट्रिगरिंग:
- त्याचा फायदा असा आहे की स्टोरेज फाइल लहान आहे आणि रेडिस सुरू केल्यावर डेटा रिकव्हरी जलद होते.
- नकारात्मक बाजू म्हणजे डेटा गमावण्याचा धोका आहे.
RDB फाइल्सची रिकव्हरी देखील खूप सोपी आहे. फक्त RDB फाइल्स Redis च्या रूट डिरेक्ट्रीमध्ये ठेवा आणि Redis सुरू झाल्यावर डेटा आपोआप लोड आणि रिस्टोअर करेल.
RDB फायदे आणि तोटे
1) RDB फायदे
RDB ची सामग्री बायनरी डेटा आहे, जी कमी मेमरी व्यापते, अधिक संक्षिप्त आहे आणि बॅकअप फाइल म्हणून अधिक योग्य आहे;
आरडीबी आपत्ती पुनर्प्राप्तीसाठी खूप उपयुक्त आहे, ही एक संकुचित फाइल आहे जी रेडिस सेवा पुनर्प्राप्तीसाठी रिमोट सर्व्हरवर वेगाने हस्तांतरित केली जाऊ शकते;
RDB Redis चा वेग मोठ्या प्रमाणात सुधारू शकतो, कारण मुख्य Redis प्रक्रिया चाइल्ड प्रोसेसला डिस्कवर डेटा टिकवून ठेवण्यासाठी फोर्क करेल.
Redis मुख्य प्रक्रिया डिस्क I/O सारखी कार्ये करत नाही;
AOF फॉरमॅट फाइल्सच्या तुलनेत, RDB फाइल्स जलद रीस्टार्ट होतात.
2) RDB चे तोटे
कारण RDB केवळ ठराविक वेळेच्या अंतराने डेटा वाचवू शकते, जर Redis सेवा चुकून मध्यभागी संपुष्टात आली, तर Redis डेटा ठराविक कालावधीसाठी गमावला जाईल;
एक प्रक्रिया ज्यामध्ये RDB ला subentry वापरून डिस्कवर सेव्ह करण्यासाठी वारंवार काटे लागतात.
डेटासेट मोठा असल्यास, काटा वेळखाऊ असू शकतो आणि डेटासेट मोठा असल्यास, CPU कार्यप्रदर्शन खराब आहे, ज्यामुळे Redis काही मिलीसेकंद किंवा अगदी सेकंदासाठी क्लायंटला सेवा देऊ शकत नाही.
अर्थात, आम्ही Redis ची अंमलबजावणी कार्यक्षमता सुधारण्यासाठी सातत्य अक्षम करू शकतो.
तुम्ही डेटा गमावण्याबाबत संवेदनशील नसल्यास, क्लायंट कनेक्ट झाल्यावर तुम्ही हे करू शकता config set save ""
Redis साठी दृढता अक्षम करण्यासाठी आदेश.
在redis.conf
, मध्ये असल्यासsave
सुरुवातीला सर्व कॉन्फिगरेशन्सवर टिप्पणी द्या, आणि टिकून राहणे देखील अक्षम केले जाईल, परंतु हे सहसा केले जात नाही.
होप चेन वेइलांग ब्लॉग ( https://www.chenweiliang.com/ ) सामायिक केले "रेडिस आरडीबीचे पूर्ण नाव काय आहे? Redis RDB इन-मेमरी डेटा पर्सिस्टन्स ऑपरेशन मोड", तुम्हाला मदत करेल.
या लेखाची लिंक सामायिक करण्यासाठी आपले स्वागत आहे:https://www.chenweiliang.com/cwl-26677.html
नवीनतम अपडेट्स मिळवण्यासाठी चेन वेइलियांगच्या ब्लॉगच्या टेलिग्राम चॅनेलवर आपले स्वागत आहे!
📚 या मार्गदर्शकामध्ये प्रचंड मूल्य आहे, 🌟ही एक दुर्मिळ संधी आहे, ती चुकवू नका! ⏰⌛💨
आवडल्यास शेअर आणि लाईक करा!
तुमचे शेअरिंग आणि लाईक्स ही आमची सतत प्रेरणा आहे!