ఆర్టికల్ డైరెక్టరీ
RDB పూర్తి పేరుRedis database
.
- పేరు సూచించినట్లుగా, RDB అనేది డేటాను నిల్వ చేయడానికి ఉపయోగించే Redis డేటాబేస్.
- కాబట్టి, RDB పట్టుదల ద్వారా, Redis మెమరీలో నిల్వ చేయబడిన డేటా RDB ఫైల్కు వ్రాయబడుతుంది మరియు నిలకడను సాధించడానికి డిస్క్లో సేవ్ చేయబడుతుంది.
- Redis యొక్క విశేషాంశం ఏమిటంటే, ఇది డేటాను కొనసాగించగలదు, అనగా, డేటాను కోల్పోకుండా ఉండేలా మెమరీలోని డేటాను డిస్క్కి వ్రాయగలదు మరియు డిస్క్ నుండి డేటాను మెమరీలోకి కూడా లోడ్ చేయగలదు.
ప్రారంభంలో Redis యొక్క కార్యకలాపాలు అన్ని మెమరీ ఆధారంగా ఉంటాయి, కాబట్టి పనితీరు చాలా ఎక్కువగా ఉంటుంది, కానీ ప్రోగ్రామ్ మూసివేయబడిన తర్వాత, డేటా పోతుంది.
కాబట్టి, మేము నిర్దిష్ట వ్యవధిలో డిస్క్కి ఇన్-మెమరీ డేటాను వ్రాయాలి, ఇది పరిభాషలో స్నాప్షాట్.
పునరుద్ధరించేటప్పుడు, స్నాప్షాట్ ఫైల్ నేరుగా మెమరీకి వ్రాయబడుతుంది.
రెడిస్ మరియు మెమ్క్యాచెడ్ మధ్య ఉన్న ప్రధాన వ్యత్యాసాలలో ఇది కూడా ఒకటి, ఎందుకంటే మెమ్కాచెడ్కు పట్టుదల సామర్థ్యం లేదు.
Redis మెమరీ డేటా యొక్క నిలకడ కోసం, Redis మాకు క్రింది పద్ధతులను అందిస్తుంది:
- స్నాప్షాట్ పద్ధతి (RDB, రెడిస్ డేటాబేస్): ఒక నిర్దిష్ట సమయంలో బైనరీ రూపంలో డిస్క్కి మెమరీ డేటాను వ్రాయండి;
- ఫైల్ను మాత్రమే జోడించు (AOF, ఫైల్ను మాత్రమే జోడించు), అన్ని ఆపరేషన్ ఆదేశాలను రికార్డ్ చేయండి మరియు ఫైల్కి టెక్స్ట్ రూపంలో జత చేయండి;
- హైబ్రిడ్ పెర్సిస్టెన్స్, రెడిస్ 4.0 తర్వాత కొత్త పద్ధతి, హైబ్రిడ్ పెర్సిస్టెన్స్ RDB మరియు AOF యొక్క ప్రయోజనాలను మిళితం చేస్తుంది.వ్రాస్తున్నప్పుడు, మొదట ప్రస్తుత డేటాను RDB రూపంలో ఫైల్ ప్రారంభంలో వ్రాసి, ఆపై AOF రూపంలో ఫైల్కు తదుపరి ఆపరేషన్ ఆదేశాలను సేవ్ చేయండి, ఇది Redis పునఃప్రారంభం యొక్క వేగాన్ని నిర్ధారించడమే కాకుండా, తగ్గించగలదు. డేటా నష్టం ప్రమాదం.
ఎందుకంటే ప్రతి పెర్సిస్టెంట్ స్కీమ్ నిర్దిష్ట వినియోగ దృశ్యాలను కలిగి ఉంటుంది.
Redis RDB మెమరీ డేటా పెర్సిస్టెన్స్ ఆపరేషన్ మోడ్
- RDB (రెడిస్ డేటాబేస్) అనేది బైనరీ రూపంలో డిస్క్కి ఒక నిర్దిష్ట క్షణంలో మెమరీ స్నాప్షాట్ (స్నాప్షాట్) వ్రాసే ప్రక్రియ.
- మెమరీ స్నాప్షాట్లు మనం పైన చెప్పుకున్నవే.ఇది ఒక నిర్దిష్ట క్షణంలో మెమరీలోని డేటా యొక్క రాష్ట్ర రికార్డును సూచిస్తుంది.
- ఇది ఫోటో తీయడం లాంటిదే. మీరు స్నేహితుడి ఫోటో తీసినప్పుడు, ఒక ఫోటో తక్షణమే స్నేహితుడి చిత్రాలన్నింటినీ రికార్డ్ చేయగలదు.
- RDBని ట్రిగ్గర్ చేయడానికి రెండు మార్గాలు ఉన్నాయి: ఒకటి మాన్యువల్ ట్రిగ్గరింగ్ మరియు మరొకటి ఆటోమేటిక్ ట్రిగ్గరింగ్.
RDBని మాన్యువల్గా ట్రిగ్గర్ చేయండి
పట్టుదలను మాన్యువల్గా ట్రిగ్గర్ చేయడానికి రెండు కార్యకలాపాలు ఉన్నాయి:save
మరియుbgsave
.
రెడిస్ ప్రధాన థ్రెడ్ అమలును నిరోధించాలా వద్దా అనేది వాటి మధ్య ప్రధాన వ్యత్యాసం.
1. ఆదేశాన్ని సేవ్ చేయండి
క్లయింట్ వైపు సేవ్ కమాండ్ని అమలు చేయడం వలన Redis యొక్క పట్టుదల పెరుగుతుంది, కానీ అది Redisని నిరోధించే స్థితిలో కూడా చేస్తుంది. 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 ఆదేశాన్ని ఒకసారి అమలు చేస్తుంది.
గమనిక: బహుళ 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. మాస్టర్-స్లేవ్ సింక్రొనైజేషన్ ట్రిగ్గర్
Redis మాస్టర్-స్లేవ్ రెప్లికేషన్లో, స్లేవ్ నోడ్ పూర్తి రెప్లికేషన్ ఆపరేషన్ చేసినప్పుడు, మాస్టర్ నోడ్ 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 కాన్ఫిగరేషన్ ఫైల్ను మాన్యువల్గా సవరించండి
- కమాండ్ లైన్ సెట్టింగ్లను ఉపయోగించండి, config set dir "/usr/data" అనేది RDB ఫైల్ను సవరించడానికి నిల్వ కమాండ్.
గమనిక: redis.confలోని కాన్ఫిగరేషన్ను config get xxx ద్వారా పొందవచ్చు మరియు config సెట్ xxx విలువ ద్వారా సవరించవచ్చు మరియు Redis కాన్ఫిగరేషన్ ఫైల్ను మాన్యువల్గా సవరించే విధానం ప్రపంచవ్యాప్తంగా ప్రభావవంతంగా ఉంటుంది, అంటే, Redis సర్వర్ని పునఃప్రారంభించడం ద్వారా సెట్ చేయబడిన పారామితులు పనిచేయవు. పోతుంది, కానీ ఆదేశాన్ని ఉపయోగించి సవరించబడింది, Redis పునఃప్రారంభించిన తర్వాత అది పోతుంది.
అయితే, మీరు Redis కాన్ఫిగరేషన్ ఫైల్ను మాన్యువల్గా సవరించాలనుకుంటే వెంటనే అమలులోకి రావాలంటే, మీరు Redis సర్వర్ని పునఃప్రారంభించాలి మరియు కమాండ్ పద్ధతికి Redis సర్వర్ని పునఃప్రారంభించాల్సిన అవసరం లేదు.
RDB ఫైల్ రికవరీ
Redis సర్వర్ ప్రారంభమైనప్పుడు, Redis రూట్ డైరెక్టరీలో RDB ఫైల్ dump.rdb ఉన్నట్లయితే, నిరంతర డేటాను పునరుద్ధరించడానికి Redis స్వయంచాలకంగా RDB ఫైల్ను లోడ్ చేస్తుంది.
రూట్ డైరెక్టరీలో dump.rdb ఫైల్ లేకపోతే, దయచేసి ముందుగా dump.rdb ఫైల్ని Redis యొక్క రూట్ డైరెక్టరీకి తరలించండి.
వాస్తవానికి, Redis ప్రారంభమైనప్పుడు లాగ్ సమాచారం ఉంది, ఇది RDB ఫైల్ లోడ్ చేయబడిందో లేదో చూపుతుంది.
లోడింగ్ పూర్తయ్యే వరకు RDB ఫైల్ను లోడ్ చేస్తున్నప్పుడు Redis సర్వర్ బ్లాక్ చేస్తుంది.
RDB పట్టుదల రెండు విధాలుగా విభజించబడిందని ఇప్పుడు మనకు తెలుసు: మాన్యువల్ ట్రిగ్గరింగ్ మరియు ఆటోమేటిక్ ట్రిగ్గరింగ్:
- దీని ప్రయోజనం ఏమిటంటే, స్టోరేజ్ ఫైల్ చిన్నది మరియు Redis ప్రారంభించబడినప్పుడు డేటా రికవరీ వేగంగా ఉంటుంది.
- ప్రతికూలత ఏమిటంటే డేటా కోల్పోయే ప్రమాదం ఉంది.
RDB ఫైల్ల పునరుద్ధరణ కూడా చాలా సులభం. RDB ఫైల్లను Redis యొక్క రూట్ డైరెక్టరీలో ఉంచండి మరియు Redis అది ప్రారంభమైనప్పుడు స్వయంచాలకంగా లోడ్ అవుతుంది మరియు డేటాను పునరుద్ధరిస్తుంది.
RDB లాభాలు మరియు నష్టాలు
1) RDB ప్రయోజనాలు
RDB యొక్క కంటెంట్ బైనరీ డేటా, ఇది తక్కువ మెమరీని ఆక్రమిస్తుంది, మరింత కాంపాక్ట్ మరియు బ్యాకప్ ఫైల్గా మరింత అనుకూలంగా ఉంటుంది;
విపత్తు పునరుద్ధరణకు RDB చాలా ఉపయోగకరంగా ఉంటుంది, ఇది రెడిస్ సర్వీస్ రికవరీ కోసం రిమోట్ సర్వర్కు వేగంగా బదిలీ చేయగల కంప్రెస్డ్ ఫైల్;
RDB Redis వేగాన్ని బాగా మెరుగుపరుస్తుంది, ఎందుకంటే ప్రధాన Redis ప్రక్రియ డిస్క్కి డేటాను కొనసాగించడానికి చైల్డ్ ప్రాసెస్ను ఫోర్క్ చేస్తుంది.
Redis ప్రధాన ప్రక్రియ డిస్క్ I/O వంటి కార్యకలాపాలను నిర్వహించదు;
AOF ఫార్మాట్ ఫైల్లతో పోలిస్తే, RDB ఫైల్లు వేగంగా పునఃప్రారంభించబడతాయి.
2) RDB యొక్క ప్రతికూలతలు
RDB ఒక నిర్దిష్ట సమయ వ్యవధిలో మాత్రమే డేటాను సేవ్ చేయగలదు కాబట్టి, Redis సేవ అనుకోకుండా మధ్యలో ఆపివేయబడితే, Redis డేటా కొంత కాలం పాటు పోతుంది;
సబ్ఎంట్రీని ఉపయోగించి డిస్క్లో సేవ్ చేయడానికి RDBకి తరచుగా ఫోర్కులు అవసరమయ్యే ప్రక్రియ.
డేటాసెట్ పెద్దదైతే, ఫోర్క్ సమయం తీసుకుంటుంది మరియు డేటాసెట్ పెద్దదైతే, CPU పనితీరు పేలవంగా ఉంటుంది, దీని వలన Redis కొన్ని మిల్లీసెకన్లు లేదా సెకను వరకు క్లయింట్లకు సేవలు అందించలేకపోతుంది.
వాస్తవానికి, Redis యొక్క అమలు సామర్థ్యాన్ని మెరుగుపరచడానికి మేము పట్టుదలను కూడా నిలిపివేయవచ్చు.
మీరు డేటా నష్టానికి సున్నితంగా లేకుంటే, క్లయింట్ కనెక్ట్ అయినప్పుడు మీరు దీన్ని చేయవచ్చు config set save ""
Redis కోసం పట్టుదలని నిలిపివేయమని ఆదేశం.
在redis.conf
, ఉంటేsave
ప్రారంభంలో అన్ని కాన్ఫిగరేషన్లను వ్యాఖ్యానించండి మరియు పట్టుదల కూడా నిలిపివేయబడుతుంది, కానీ ఇది సాధారణంగా జరగదు.
హోప్ చెన్ వీలియాంగ్ బ్లాగ్ ( https://www.chenweiliang.com/ ) భాగస్వామ్యం చేసారు "రెడిస్ RDB పూర్తి పేరు ఏమిటి? Redis RDB ఇన్-మెమరీ డేటా పెర్సిస్టెన్స్ ఆపరేషన్ మోడ్", మీకు సహాయం చేస్తుంది.
ఈ కథనం యొక్క లింక్ను భాగస్వామ్యం చేయడానికి స్వాగతం:https://www.chenweiliang.com/cwl-26677.html
తాజా నవీకరణలను పొందడానికి చెన్ వీలియాంగ్ బ్లాగ్ యొక్క టెలిగ్రామ్ ఛానెల్కు స్వాగతం!
📚 ఈ గైడ్లో భారీ విలువ ఉంది, 🌟ఇది ఒక అరుదైన అవకాశం, దీన్ని మిస్ చేయకండి! ⏰⌛💨
నచ్చితే లైక్ చేసి షేర్ చేయండి!
మీ భాగస్వామ్యం మరియు ఇష్టాలు మా నిరంతర ప్రేరణ!