கட்டுரை அடைவு
RDB இன் முழுப் பெயர்Redis database
.
- பெயர் குறிப்பிடுவது போல, RDB என்பது தரவைச் சேமிக்கப் பயன்படும் ரெடிஸ் தரவுத்தளமாகும்.
- எனவே, RDB நிலைத்தன்மையின் மூலம், Redis நினைவகத்தில் சேமிக்கப்பட்ட தரவு RDB கோப்பில் எழுதப்பட்டு, நிலைத்தன்மையை அடைய வட்டில் சேமிக்கப்படுகிறது.
- Redis இன் அம்சம் என்னவென்றால், அது தரவைத் தொடர்ந்து வைத்திருக்க முடியும், அதாவது, தரவு எதுவும் இழக்கப்படாமல் இருப்பதை உறுதிப்படுத்த நினைவகத்தில் உள்ள தரவை வட்டில் எழுதலாம், மேலும் வட்டில் இருந்து நினைவகத்தில் தரவை ஏற்றலாம்.
ஆரம்பத்தில் Redis இன் செயல்பாடுகள் அனைத்தும் நினைவகத்தை அடிப்படையாகக் கொண்டவை, எனவே செயல்திறன் மிக அதிகமாக உள்ளது, ஆனால் நிரல் மூடப்பட்டவுடன், தரவு இழக்கப்படுகிறது.
எனவே, நினைவகத்தில் உள்ள தரவை குறிப்பிட்ட இடைவெளியில் வட்டில் எழுத வேண்டும், இது ஸ்னாப்ஷாட் வாசகங்களில் உள்ளது.
மீட்டமைக்கும்போது, ஸ்னாப்ஷாட் கோப்பு நேரடியாக நினைவகத்தில் எழுதப்படும்.
Redis மற்றும் Memcached இடையே உள்ள முக்கிய வேறுபாடுகளில் இதுவும் ஒன்றாகும், ஏனெனில் Memcached க்கு நிலைபேறு திறன் இல்லை.
ரெடிஸ் மெமரி டேட்டாவின் நிலைத்தன்மைக்கு, ரெடிஸ் நமக்கு பின்வரும் முறைகளை வழங்குகிறது:
- ஸ்னாப்ஷாட் முறை (RDB, Redis DataBase): நினைவகத் தரவை ஒரு குறிப்பிட்ட தருணத்தில் பைனரி வடிவத்தில் வட்டுக்கு எழுதுங்கள்;
- ஒரே கோப்பைச் சேர்க்கவும் (AOF, கோப்பு மட்டும் சேர்க்கவும்), அனைத்து செயல்பாட்டுக் கட்டளைகளையும் பதிவுசெய்து, கோப்பில் உரை வடிவத்தில் இணைக்கவும்;
- Hybrid persistence, Redis 4.0 க்குப் பிறகு ஒரு புதிய முறை, கலப்பின நிலைத்தன்மை RDB மற்றும் AOF இன் நன்மைகளை ஒருங்கிணைக்கிறது.எழுதும் போது, முதலில் தற்போதைய தரவை RDB வடிவத்தில் கோப்பின் தொடக்கத்தில் எழுதவும், பின்னர் AOF வடிவத்தில் கோப்பில் அடுத்தடுத்த செயல்பாட்டு கட்டளைகளை சேமிக்கவும், இது Redis மறுதொடக்கம் வேகத்தை உறுதி செய்வது மட்டுமல்லாமல், குறைக்கவும் முடியும். தரவு இழப்பு ஆபத்து.
ஏனெனில் ஒவ்வொரு தொடர் திட்டமும் குறிப்பிட்ட பயன்பாட்டுக் காட்சிகளைக் கொண்டுள்ளது.
Redis RDB நினைவக தரவு நிலைத்தன்மை செயல்பாட்டு முறை
- RDB (Redis DataBase) என்பது ஒரு குறிப்பிட்ட தருணத்தில் ஒரு நினைவக ஸ்னாப்ஷாட்டை (Snapshot) பைனரி வடிவத்தில் வட்டுக்கு எழுதும் செயல்முறையாகும்.
- நாம் மேலே சொன்னதுதான் மெமரி ஸ்னாப்ஷாட்கள்.இது ஒரு குறிப்பிட்ட தருணத்தில் நினைவகத்தில் உள்ள தரவின் நிலைப் பதிவைக் குறிக்கிறது.
- இது புகைப்படம் எடுப்பது போன்றது.நண்பரின் புகைப்படம் எடுக்கும் போது, அந்த நண்பரின் அனைத்து படங்களையும் ஒரு புகைப்படம் உடனடியாக பதிவு செய்யும்.
- RDB ஐ தூண்டுவதற்கு இரண்டு வழிகள் உள்ளன: ஒன்று கைமுறையாக தூண்டுதல், மற்றொன்று தானியங்கி தூண்டுதல்.
கைமுறையாக RDB ஐத் தூண்டவும்
நிலைத்தன்மையை கைமுறையாகத் தூண்டுவதற்கு இரண்டு செயல்பாடுகள் உள்ளன:save
和bgsave
.
அவற்றுக்கிடையேயான முக்கிய வேறுபாடு ரெடிஸ் மெயின் த்ரெட் செயல்படுத்துவதைத் தடுக்கலாமா வேண்டாமா என்பதுதான்.
1. சேமி கட்டளை
க்ளையன்ட் பக்கத்தில் சேவ் கட்டளையை இயக்குவது Redis இன் நிலைத்தன்மையைத் தூண்டும், ஆனால் இது Redis ஐ தடுக்கும் நிலையில் இருக்கும். RDB தொடரும் வரை மற்ற கிளையன்ட்கள் அனுப்பும் கட்டளைகளுக்கு இது பதிலளிக்காது, எனவே இது எச்சரிக்கையுடன் பயன்படுத்தப்பட வேண்டும். உற்பத்தி சூழல்.
127.0.0.1:6379> save OK 127.0.0.1:6379>
கட்டளையை இயக்கும் செயல்முறை படத்தில் காட்டப்பட்டுள்ளது
2. bgsave கட்டளை
- bgsave (பின்னணி சேமிப்பு) ஒரு பின்னணி சேமிப்பாகும்.
- அதற்கும் சேவ் கட்டளைக்கும் இடையே உள்ள மிகப்பெரிய வித்தியாசம் என்னவென்றால், பிஜிசேவ் ஒரு குழந்தை செயல்முறையை நிலைநிறுத்துவதற்கு உதவும்.
- குழந்தை செயல்முறை முட்கரண்டியாக இருக்கும்போது மட்டுமே முழு செயல்முறையும் நடக்கும்.ஒரு சிறிய அடைப்பு மட்டுமே உள்ளது.
- குழந்தை செயல்முறை உருவாக்கப்பட்ட பிறகு, ரெடிஸின் முக்கிய செயல்முறை மற்ற வாடிக்கையாளர்களின் கோரிக்கைகளுக்கு பதிலளிக்க முடியும்.
முழு செயல்முறையையும் தடுப்பதன் மூலம்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 நிலைத்தன்மை தூண்டப்படும்.
- தானாக நிலைத்தன்மையைத் தூண்டுவதன் சாராம்சம் என்னவென்றால், செட் தூண்டுதல் நிபந்தனைகள் பூர்த்தி செய்யப்பட்டால், ரெடிஸ் தானாகவே bgsave கட்டளையை ஒருமுறை இயக்கும்.
குறிப்பு: பல save mn கட்டளைகள் அமைக்கப்படும் போது, ஏதேனும் ஒரு நிபந்தனை நிலைத்தன்மையை தூண்டும்.
எடுத்துக்காட்டாக, பின்வரும் இரண்டு save mn கட்டளைகளை அமைக்கிறோம்:
save 60 10 save 600 20
- Redis முக்கிய மதிப்பு 60களுக்குள் 10 முறை மாறும்போது, நிலைத்தன்மை தூண்டப்படும்;
- Redis விசை 60களுக்குள் மாறினால், மற்றும் மதிப்பு 10 மடங்குக்கு குறைவாக மாறினால், Redis விசை 600களுக்குள் குறைந்தது 20 முறை மாற்றப்பட்டுள்ளதா என்பதை ரெடிஸ் தீர்மானிக்கும், அப்படியானால், நிலைத்தன்மையைத் தூண்டும்.
2. ஃப்ளஷல்
- Redis தரவுத்தளத்தை பறிக்க flushall கட்டளை பயன்படுத்தப்படுகிறது.
- உற்பத்தி சூழலில் இது எச்சரிக்கையுடன் பயன்படுத்தப்பட வேண்டும்.
- Redis flushall கட்டளையை இயக்கும் போது, அது தானியங்கி நிலைத்தன்மையை தூண்டுகிறது மற்றும் RDB கோப்பை அழிக்கிறது.
3. மாஸ்டர்-ஸ்லேவ் ஒத்திசைவு தூண்டுதல்
ரெடிஸ் மாஸ்டர்-ஸ்லேவ் ரெப்ளிகேஷனில், ஸ்லேவ் நோட் முழு நகலெடுக்கும் செயல்பாட்டைச் செய்யும்போது, ஸ்லேவ் நோடுக்கு RDB கோப்பை அனுப்ப, மாஸ்டர் நோட் bgsave கட்டளையை இயக்கும்.இந்த செயல்முறை தானாகவே 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 கேச் கோப்பை கைமுறையாக நீக்கவும்.
ரெடிஸ் RDB இன் உள்ளமைவை அமைக்கிறது
RDB இன் உள்ளமைவை அமைப்பது குறித்து, நீங்கள் பின்வரும் இரண்டு வழிகளைப் பயன்படுத்தலாம்:
- Redis உள்ளமைவு கோப்பை கைமுறையாக மாற்றவும்
- கட்டளை வரி அமைப்புகளைப் பயன்படுத்தவும், config set dir "/usr/data" என்பது RDB கோப்பை மாற்றுவதற்கான சேமிப்பக கட்டளையாகும்.
குறிப்பு: redis.conf இல் உள்ள உள்ளமைவை config get xxx மூலம் பெறலாம் மற்றும் config set xxx மதிப்பு மூலம் மாற்றலாம், மேலும் Redis உள்ளமைவு கோப்பை கைமுறையாக மாற்றும் முறை உலகளவில் பயனுள்ளதாக இருக்கும், அதாவது Redis சேவையகத்தை மறுதொடக்கம் செய்வதன் மூலம் அமைக்கப்படும் அளவுருக்கள் செயல்படாது. இழக்கப்படும், ஆனால் கட்டளையைப் பயன்படுத்தி மாற்றியமைக்கப்பட்டது, Redis மறுதொடக்கம் செய்த பிறகு அது இழக்கப்படும்.
இருப்பினும், நீங்கள் Redis கட்டமைப்பு கோப்பை கைமுறையாக மாற்ற விரும்பினால், உடனடியாக நடைமுறைக்கு வர, நீங்கள் Redis சேவையகத்தை மறுதொடக்கம் செய்ய வேண்டும், மேலும் கட்டளை முறைக்கு Redis சேவையகத்தை மறுதொடக்கம் செய்ய தேவையில்லை.
RDB கோப்பு மீட்பு
Redis சேவையகம் தொடங்கும் போது, Redis ரூட் கோப்பகத்தில் RDB கோப்பு dump.rdb இருந்தால், நிலையான தரவை மீட்டெடுக்க Redis தானாகவே RDB கோப்பை ஏற்றும்.
ரூட் கோப்பகத்தில் dump.rdb கோப்பு இல்லை என்றால், முதலில் dump.rdb கோப்பை Redis இன் ரூட் கோப்பகத்திற்கு நகர்த்தவும்.
நிச்சயமாக, ரெடிஸ் தொடங்கும் போது பதிவுத் தகவல் உள்ளது, இது RDB கோப்பு ஏற்றப்பட்டதா என்பதைக் காண்பிக்கும்.
ஏற்றுதல் முடியும் வரை RDB கோப்பை ஏற்றும் போது Redis சர்வர் தடுக்கிறது.
RDB நிலைத்தன்மை இரண்டு வழிகளில் பிரிக்கப்பட்டுள்ளது என்பதை இப்போது நாம் அறிவோம்: கைமுறை தூண்டுதல் மற்றும் தானியங்கி தூண்டுதல்:
- அதன் நன்மை என்னவென்றால், சேமிப்பக கோப்பு சிறியதாக உள்ளது மற்றும் ரெடிஸ் தொடங்கப்படும் போது தரவு மீட்பு வேகமாக இருக்கும்.
- தீங்கு என்னவென்றால், தரவு இழப்பு ஆபத்து உள்ளது.
RDB கோப்புகளை மீட்டெடுப்பதும் மிகவும் எளிது. RDB கோப்புகளை Redis இன் ரூட் டைரக்டரியில் வைத்தால் போதும், Redis தானாகவே டேட்டாவை ஏற்றி மீட்டெடுக்கும்.
RDB நன்மை தீமைகள்
1) RDB நன்மைகள்
RDB இன் உள்ளடக்கம் பைனரி தரவு ஆகும், இது குறைந்த நினைவகத்தை ஆக்கிரமித்து, மிகவும் கச்சிதமானது மற்றும் காப்பு கோப்பாக மிகவும் பொருத்தமானது;
பேரழிவு மீட்புக்கு RDB மிகவும் பயனுள்ளதாக இருக்கிறது, இது ஒரு சுருக்கப்பட்ட கோப்பாகும், இது ரெடிஸ் சேவை மீட்புக்காக தொலை சேவையகத்திற்கு வேகமாக மாற்றப்படும்;
RDB ஆனது Redis இன் வேகத்தை பெரிதும் மேம்படுத்த முடியும், ஏனெனில் முக்கிய Redis செயல்முறையானது ஒரு குழந்தை செயல்முறையை வட்டில் தொடர்ந்து வைத்திருக்கும்.
Redis முக்கிய செயல்முறை வட்டு I/O போன்ற செயல்பாடுகளைச் செய்யாது;
AOF வடிவமைப்பு கோப்புகளுடன் ஒப்பிடும்போது, RDB கோப்புகள் வேகமாக மறுதொடக்கம் செய்யும்.
2) RDB இன் தீமைகள்
RDB ஆனது ஒரு குறிப்பிட்ட நேர இடைவெளியில் மட்டுமே டேட்டாவைச் சேமிக்க முடியும் என்பதால், ரெடிஸ் சேவை தற்செயலாக நடுவில் நிறுத்தப்பட்டால், ரெடிஸ் டேட்டா ஒரு குறிப்பிட்ட காலத்திற்கு இழக்கப்படும்;
துணைப் பிரிவைப் பயன்படுத்தி வட்டில் வைத்திருக்க RDBக்கு அடிக்கடி ஃபோர்க்குகள் தேவைப்படும் ஒரு செயல்முறை.
தரவுத்தொகுப்பு பெரியதாக இருந்தால், ஃபோர்க் நேரத்தை எடுத்துக்கொள்ளும், மேலும் தரவுத்தொகுப்பு பெரியதாக இருந்தால், CPU செயல்திறன் மோசமாக உள்ளது, இதனால் Redis வாடிக்கையாளர்களுக்கு சில மில்லி விநாடிகள் அல்லது ஒரு நொடி கூட சேவை செய்ய முடியாமல் போகலாம்.
நிச்சயமாக, ரெடிஸின் செயல்திறனை மேம்படுத்த நாம் விடாமுயற்சியை முடக்கலாம்.
தரவு இழப்பிற்கு நீங்கள் உணர்திறன் இல்லை என்றால், கிளையன்ட் இணைக்கப்படும்போது இதைச் செய்யலாம் config set save ""
ரெடிஸுக்கு பிடிவாதத்தை முடக்குவதற்கான கட்டளை.
在redis.conf
, உள்ளே இருந்தால்save
அனைத்து உள்ளமைவுகளையும் ஆரம்பத்தில் கருத்து தெரிவிக்கவும், மேலும் நிலைத்தன்மையும் முடக்கப்படும், ஆனால் இது பொதுவாக செய்யப்படுவதில்லை.
ஹோப் சென் வெலியாங் வலைப்பதிவு ( https://www.chenweiliang.com/ ) பகிரப்பட்டது "ரெடிஸ் RDB இன் முழுப் பெயர் என்ன? Redis RDB இன்-மெமரி டேட்டா பெர்சிஸ்டன்ஸ் ஆபரேஷன் மோட்", உங்களுக்கு உதவும்.
இந்தக் கட்டுரையின் இணைப்பைப் பகிர வரவேற்கிறோம்:https://www.chenweiliang.com/cwl-26677.html
சமீபத்திய புதுப்பிப்புகளைப் பெற, சென் வெலியாங்கின் வலைப்பதிவின் டெலிகிராம் சேனலுக்கு வரவேற்கிறோம்!
📚 இந்த வழிகாட்டியில் பெரும் மதிப்பு உள்ளது, 🌟இது ஒரு அரிய வாய்ப்பு, தவறவிடாதீர்கள்! ⏰⌛💨
பிடித்திருந்தால் ஷேர் செய்து லைக் செய்யுங்கள்!
உங்களின் பகிர்வும் விருப்பங்களும் எங்களின் தொடர்ச்சியான ஊக்கம்!