Saraka ya Nakala
Jina kamili la RDB niRedis database.
- Kama jina linavyopendekeza, RDB ni hifadhidata ya Redis inayotumika kuhifadhi data.
- Kwa hiyo, kwa njia ya kuendelea kwa RDB, data iliyohifadhiwa kwenye kumbukumbu ya Redis imeandikwa kwenye faili ya RDB na kuhifadhiwa kwenye diski ili kufikia kuendelea.
- Kipengele cha Redis ni kwamba inaweza kuendelea na data, yaani, kuandika data kwenye kumbukumbu kwenye diski ili kuhakikisha kuwa hakuna data iliyopotea, na inaweza pia kupakia data kutoka kwa diski kwenye kumbukumbu.

Shughuli za Redis mwanzoni zinategemea kumbukumbu, hivyo utendaji ni wa juu sana, lakini mara tu programu imefungwa, data inapotea.
Kwa hivyo, tunahitaji kuandika data ya kumbukumbu kwa diski kwa vipindi maalum, ambayo ni Snapshot katika jargon.
Wakati wa kurejesha, faili ya snapshot imeandikwa moja kwa moja kwenye kumbukumbu.
Hii pia ni moja ya tofauti kuu kati ya Redis na Memcached, kwa sababu Memcached haina uwezo wa kuendelea.
Kwa kuendelea kwa data ya kumbukumbu ya Redis, Redis hutupatia njia zifuatazo:
- Njia ya snapshot (RDB, Redis DataBase): andika data ya kumbukumbu kwa diski katika fomu ya binary kwa wakati fulani;
- Ongeza Faili Pekee (AOF, Ongeza Faili Pekee), rekodi amri zote za uendeshaji, na uambatanishe na faili katika fomu ya maandishi;
- Udumifu wa mseto, mbinu mpya baada ya Redis 4.0, usugu wa mseto unachanganya faida za RDB na AOF.Wakati wa kuandika, kwanza andika data ya sasa hadi mwanzo wa faili kwa namna ya RDB, na kisha uhifadhi amri za uendeshaji zinazofuata kwa faili kwa namna ya AOF, ambayo haiwezi tu kuhakikisha kasi ya kuanzisha upya upya, lakini pia kupunguza. hatari ya kupoteza data.
Kwa sababu kila mpango wa kuendelea una hali maalum za utumiaji.
Redis hali ya kuendelea ya operesheni ya kumbukumbu ya RDB
- RDB (Redis DataBase) ni mchakato wa kuandika snapshot ya kumbukumbu (Snapshot) kwa wakati fulani ili diski katika mfumo wa binary.
- Picha za kumbukumbu ni zile tulizosema hapo juu.Inahusu rekodi ya hali ya data katika kumbukumbu kwa wakati fulani.
- Hii ni sawa na kupiga picha. Unapopiga picha ya rafiki, picha inaweza kurekodi picha zote za rafiki papo hapo.
- Kuna njia mbili za kuchochea RDB: moja ni kuchochea mwongozo, na nyingine ni kuchochea moja kwa moja.
Anzisha mwenyewe RDB
Kuna shughuli mbili za kuanzisha usugu kwa mikono:saveNabgsave.
Tofauti kuu kati yao ni kuzuia au kuzuia utekelezaji wa uzi kuu wa Redis.
1. kuokoa amri
Utekelezaji wa amri ya kuokoa kwenye upande wa mteja kutasababisha kuendelea kwa Redis, lakini pia kutafanya Redis kuwa katika hali ya kuzuia. Haitajibu amri zinazotumwa na wateja wengine hadi RDB iendelee, kwa hivyo ni lazima itumike kwa tahadhari katika mazingira ya uzalishaji.
127.0.0.1:6379> save OK 127.0.0.1:6379>
Mchakato wa kutekeleza amri unaonyeshwa kwenye takwimu
2. bgsave amri
- bgsave (hifadhi ya usuli) ni hifadhi ya usuli.
- Tofauti kubwa kati yake na amri ya kuokoa ni kwamba bgsave italazimisha mchakato wa mtoto kufanya uvumilivu.
- Mchakato wote hutokea tu wakati mchakato wa mtoto ni uma.Kuna kizuizi kifupi tu.
- Baada ya mchakato wa mtoto kuundwa, mchakato kuu wa Redis unaweza kujibu maombi kutoka kwa wateja wengine.
na kuzuia mchakato mzimasaveikilinganishwa na amribgsaveAmri ni wazi inafaa zaidi kwa sisi kutumia.
127.0.0.1:6379> bgsave Background Saving started # 提示开始后台保存 127.0.0.1:6379>
Anzisha RDB kiotomatiki
Baada ya kuzungumza juu ya kuchochea mwongozo, hebu tuangalie kuchochea moja kwa moja.Tunaweza kusanidi masharti ya kuchochea kiotomatiki katika faili ya usanidi.
1. kuokoa mn
- save mn inamaanisha kuwa ndani ya sekunde m, ikiwa vitufe vya n vinabadilika, uendelevu huanzishwa kiotomatiki.Vigezo m na n vinaweza kupatikana kwenye faili ya usanidi wa Redis.
- Kwa mfano, kuokoa 60 1 inamaanisha kuwa ndani ya sekunde 60, mradi tu ufunguo mmoja ubadilike, uendelevu wa RDB utaanzishwa.
- Kiini cha kuchochea kiotomatiki ni kwamba ikiwa masharti ya vichochezi vilivyowekwa yametimizwa, Redis itatoa kiotomatiki amri ya bgsave mara moja.
Kumbuka: Wakati amri nyingi za kuokoa mn zimewekwa, hali yoyote moja itasababisha kuendelea.
Kwa mfano, tunaweka amri mbili zifuatazo za kuokoa mn:
save 60 10 save 600 20
- Wakati thamani ya ufunguo wa Redis inabadilika mara 60 ndani ya 10s, kuendelea kutaanzishwa;
- Ikiwa ufunguo wa Redis utabadilika ndani ya miaka ya 60, na ikiwa thamani itabadilika chini ya mara 10, basi Redis itaamua ikiwa ufunguo wa Redis umebadilishwa angalau mara 600 ndani ya 20s, na ikiwa ni hivyo, anzisha kuendelea.
2. Flushall
- Amri ya flushall hutumiwa kufuta hifadhidata ya Redis.
- Ni lazima itumike kwa tahadhari katika mazingira ya uzalishaji.
- Wakati Redis inapotekeleza amri ya flushall, inasababisha kuendelea kiotomatiki na kufuta faili za RDB.
3. Kichochezi cha upatanishi cha bwana-mtumwa
Katika urudufishaji wa mtumwa mkuu wa Redis, nodi ya mtumwa inapofanya kazi kamili ya urudufishaji, nodi kuu itatekeleza amri ya bgsave kutuma faili ya RDB kwenye nodi ya mtumwa. Mchakato huu huchochea kiotomatiki kuendelea kwa Redis.
Redis inaweza kuuliza vigezo vya usanidi wa sasa kupitia amri.
Umbizo la amri ya hoja ni:config get xxx
Kwa mfano, ikiwa unataka kupata mpangilio wa jina la hifadhi ya faili ya RDB, unaweza kutumia config get dbfilename .
Athari ya utekelezaji ni kama ifuatavyo:
127.0.0.1:6379> config get dbfilename 1) "dbfilename" 2) "dump.rdb"
Kwa kuwa seva ya Redis itazuia wakati wa kupakia faili ya RDB hadi upakiaji ukamilike, inaweza kusababisha muda mrefu na tovuti haiwezi kufikiwa.
Ikiwa ungependa kufuta mwenyewe faili ya kache ya RDB dump.rdb ya Redis, unaweza kutumia amri ifuatayo kutafuta njia ya uhifadhi ya faili ya dump.rdb▼
find / -name dump.rdb
- Kisha, futa mwenyewe faili ya kache ya dump.rdb kupitia SSH.
Redis huweka usanidi wa RDB
Kuhusu kuweka usanidi wa RDB, unaweza kutumia njia mbili zifuatazo:
- Rekebisha mwenyewe faili ya usanidi ya Redis
- Tumia mipangilio ya safu ya amri, config set dir "/usr/data" ni amri ya uhifadhi ya kurekebisha faili ya RDB.
Kumbuka: Usanidi katika redis.conf unaweza kupatikana kupitia config get xxx na kurekebishwa kupitia config set xxx thamani, na mbinu ya kurekebisha faili ya usanidi wa Redis ni nzuri duniani kote, yaani, vigezo vilivyowekwa kwa kuanzisha upya seva ya Redis hazitakuwa. kupotea, lakini kurekebishwa kwa kutumia amri, itapotea baada ya Redis kuanza tena.
Hata hivyo, ikiwa unataka kurekebisha faili ya usanidi wa Redis ili kuanza mara moja, unahitaji kuanzisha upya seva ya Redis, na njia ya amri haihitaji kuanzisha upya seva ya Redis.
Urejeshaji wa faili ya RDB
Wakati seva ya Redis inapoanza, ikiwa faili ya RDB dump.rdb ipo kwenye saraka ya mizizi ya Redis, Redis itapakia kiotomatiki faili ya RDB ili kurejesha data inayoendelea.
Ikiwa hakuna faili ya dump.rdb katika saraka ya mizizi, tafadhali sogeza faili ya dump.rdb hadi saraka ya mizizi ya Redis kwanza.
Kwa kweli, kuna habari ya kumbukumbu wakati Redis inapoanza, ambayo itaonyesha ikiwa faili ya RDB imepakiwa.
Seva ya Redis huzuia wakati wa kupakia faili ya RDB hadi upakiaji ukamilike.
Sasa tunajua kuwa uvumilivu wa RDB umegawanywa katika njia mbili: uanzishaji wa mwongozo na uanzishaji wa kiotomatiki:
- Faida yake ni kwamba faili ya uhifadhi ni ndogo na uokoaji wa data ni haraka wakati Redis inapoanzishwa.
- Upande wa chini ni kwamba kuna hatari ya kupoteza data.
Urejeshaji wa faili za RDB pia ni rahisi sana.Weka tu faili za RDB kwenye saraka ya mizizi ya Redis, na Redis itapakia na kurejesha data kiotomatiki inapoanza.
RDB faida na hasara
1) Faida za RDB
Yaliyomo kwenye RDB ni data ya binary, ambayo inachukua kumbukumbu kidogo, ni ngumu zaidi, na inafaa zaidi kama faili ya chelezo;
RDB ni muhimu sana kwa uokoaji wa maafa, ni faili iliyoshinikizwa ambayo inaweza kuhamishiwa kwa seva ya mbali haraka kwa uokoaji wa huduma ya Redis;
RDB inaweza kuboresha sana kasi ya Redis, kwa sababu mchakato kuu wa Redis utafanya mchakato wa mtoto kuendelea na data kwenye diski.
Mchakato kuu wa Redis haufanyi shughuli kama vile diski I/O;
Ikilinganishwa na faili za umbizo la AOF, faili za RDB huwashwa tena haraka.
2) Hasara za RDB
Kwa sababu RDB inaweza tu kuhifadhi data kwa muda fulani, ikiwa huduma ya Redis itasitishwa kwa bahati mbaya katikati, data ya Redis itapotea kwa muda fulani;
Mchakato ambao RDB inahitaji uma za mara kwa mara ili kuihifadhi kwenye diski kwa kutumia subentry.
Ikiwa mkusanyiko wa data ni mkubwa, uma unaweza kuchukua muda, na ikiwa mkusanyiko wa data ni mkubwa, utendakazi wa CPU ni duni, jambo ambalo linaweza kusababisha Redis kushindwa kuhudumia wateja kwa milisekunde chache au hata sekunde.
Bila shaka, tunaweza pia kuzima usugu ili kuboresha ufanisi wa utekelezaji wa Redis.
Ikiwa haujali upotezaji wa data, unaweza kufanya hivyo wakati mteja anaunganisha config set save "" Amri ya kuzima kuendelea kwa Redis.
katikaredis.conf, ikiwa ndanisaveToa maoni kuhusu usanidi wote mwanzoni, na uendelevu pia utazimwa, lakini hii kwa ujumla haijafanywa.
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) alishiriki "Jina kamili la Redis RDB ni nini? Redis RDB In-Memory Data Operation Mode", itakusaidia.
Karibu kushiriki kiungo cha makala hii:https://www.chenweiliang.com/cwl-26677.html
