Հոդվածների տեղեկատու
RDB-ի լրիվ անվանումն էRedis database
.
- Ինչպես անունն է հուշում, RDB-ն Redis տվյալների բազա է, որն օգտագործվում է տվյալների պահպանման համար:
- Հետևաբար, RDB համառության միջոցով Redis հիշողության մեջ պահվող տվյալները գրվում են RDB ֆայլում և պահվում սկավառակի վրա՝ կայունության հասնելու համար:
- Redis-ի առանձնահատկությունն այն է, որ այն կարող է պահպանել տվյալները, այսինքն՝ գրել տվյալներ հիշողության մեջ սկավառակի վրա, որպեսզի համոզվի, որ ոչ մի տվյալ չի կորչում, ինչպես նաև կարող է բեռնել տվյալները սկավառակից հիշողության մեջ:
Սկզբում Redis-ի գործառնությունները հիմնված են հիշողության վրա, ուստի արդյունավետությունը շատ բարձր է, բայց երբ ծրագիրը փակվում է, տվյալները կորչում են:
Հետևաբար, մենք պետք է հիշողության մեջ տվյալներ գրենք սկավառակի վրա նշված ընդմիջումներով, ինչը ժարգոնում Snapshot է:
Վերականգնելիս snapshot ֆայլը գրվում է անմիջապես հիշողության մեջ:
Սա նաև Redis-ի և Memcached-ի հիմնական տարբերություններից մեկն է, քանի որ Memcached-ը չունի կայունության հնարավորություն։
Redis-ի հիշողության տվյալների պահպանման համար Redis-ը մեզ տրամադրում է հետևյալ մեթոդները.
- Snapshot մեթոդը (RDB, Redis DataBase). որոշակի պահին սկավառակի վրա գրել հիշողության տվյալները երկուական տեսքով;
- Կցել միայն ֆայլը (AOF, Append Only File), գրանցել գործողության բոլոր հրամանները և ֆայլին միացնել տեքստային ձևով;
- Հիբրիդային համառությունը՝ Redis 4.0-ից հետո նոր մեթոդ, հիբրիդային կայունությունը համատեղում է RDB-ի և AOF-ի առավելությունները:Գրելիս նախ գրեք ընթացիկ տվյալները ֆայլի սկզբում RDB-ի տեսքով, այնուհետև պահեք ֆայլի հետագա գործողության հրամանները AOF-ի տեսքով, ինչը կարող է ոչ միայն ապահովել Redis-ի վերագործարկման արագությունը, այլև նվազեցնել: տվյալների կորստի ռիսկը.
Քանի որ համառության յուրաքանչյուր սխեման ունի օգտագործման հատուկ սցենարներ:
Redis RDB հիշողության տվյալների համառ աշխատանքի ռեժիմ
- RDB (Redis DataBase) հիշողության ակնթարթային նկարը (Snapshot) որոշակի պահի երկուական ձևով սկավառակի վրա գրելու գործընթաց է:
- Հիշողության պատկերներն այն են, ինչ մենք ասացինք վերևում:Դա վերաբերում է որոշակի պահի հիշողության մեջ տվյալների պետական գրանցմանը:
- Սա նման է լուսանկարելուն: Երբ լուսանկարում եք ընկերոջը, լուսանկարը կարող է անմիջապես գրանցել ընկերոջ բոլոր պատկերները:
- RDB-ն գործարկելու երկու եղանակ կա՝ մեկը ձեռքով գործարկում է, իսկ մյուսը՝ ավտոմատ գործարկում:
Ձեռքով միացրեք RDB-ն
Համառությունը ձեռքով գործարկելու երկու գործողություն կա.save
和bgsave
.
Նրանց միջև հիմնական տարբերությունն այն է, թե արդյոք արգելափակել Redis հիմնական թելի կատարումը, թե ոչ:
1. save հրամանը
Պահպանման հրամանի կատարումը հաճախորդի կողմից կգործարկի Redis-ի կայունությունը, սակայն այն նաև կդարձնի Redis-ը արգելափակման վիճակում: Այն չի արձագանքի այլ հաճախորդների կողմից ուղարկված հրամաններին, քանի դեռ RDB-ն պահպանվում է, ուստի այն պետք է զգուշությամբ օգտագործվի: արտադրական միջավայրը.
127.0.0.1:6379> save OK 127.0.0.1:6379>
Հրամանի կատարման գործընթացը ներկայացված է նկարում
2. bgsave հրաման
- bgsave (ֆոնային պահպանում) ֆոնային պահպանում է:
- Նրա և save հրամանի միջև ամենամեծ տարբերությունն այն է, որ bgsave-ը կձգտի երեխայի գործընթացը՝ համառություն կատարելու համար:
- Ամբողջ գործընթացը միայն այն դեպքում, երբ երեխայի գործընթացը պատառաքաղ է:Կա միայն կարճ խցանում.
- Երեխայի գործընթացի ստեղծումից հետո Redis-ի հիմնական գործընթացը կարող է պատասխանել այլ հաճախորդների հարցումներին:
ամբողջ գործընթացի արգելափակմամբsave
հրամանի համեմատbgsave
Հրամանն ակնհայտորեն ավելի հարմար է մեզ օգտագործելու համար:
127.0.0.1:6379> bgsave Background Saving started # 提示开始后台保存 127.0.0.1:6379>
Ավտոմատ կերպով միացնել RDB-ն
Ձեռքով գործարկման մասին խոսելուց հետո եկեք նայենք ավտոմատ գործարկմանը:Մենք կարող ենք կարգավորել կոնֆիգուրացիայի ֆայլում ավտոմատ գործարկման պայմանները:
1. խնայել մն
- save mn-ը նշանակում է, որ m վայրկյանի ընթացքում, եթե n ստեղները փոխվեն, համառությունն ավտոմատ կերպով գործարկվում է:m և n պարամետրերը կարելի է գտնել Redis-ի կազմաձևման ֆայլում:
- Օրինակ, պահպանել 60 1 նշանակում է, որ 60 վայրկյանի ընթացքում, քանի դեռ մեկ բանալին փոխվում է, RDB կայունությունը կգործարկվի:
- Համառության ավտոմատ գործարկման էությունն այն է, որ եթե սահմանված ձգանման պայմանները բավարարվեն, Redis-ը ավտոմատ կերպով մեկ անգամ կկատարի bgsave հրամանը:
Նշում. Երբ մի քանի save mn հրամաններ են սահմանվում, ցանկացած պայման կգործարկի համառություն:
Օրինակ, մենք սահմանել ենք հետևյալ երկու save mn հրամանները.
save 60 10 save 600 20
- Երբ Redis բանալի արժեքը փոխվում է 60 անգամ 10-ականների ընթացքում, հաստատակամությունը կգործարկվի.
- Եթե Redis ստեղնը փոխվի 60 վայրկյանների ընթացքում, և եթե արժեքը փոխվի 10 անգամից պակաս, Redis-ը կորոշի, թե արդյոք Redis ստեղնը փոփոխվել է առնվազն 600 անգամ 20 վայրկյանների ընթացքում, և եթե այո, ապա կգործարկի կայունությունը:
2. Ֆլուշալ
- Flushall հրամանն օգտագործվում է Redis տվյալների բազան մաքրելու համար:
- Այն պետք է զգուշությամբ օգտագործվի արտադրական միջավայրում:
- Երբ Redis-ը կատարում է flushall հրամանը, այն գործարկում է ավտոմատ համառություն և մաքրում RDB ֆայլերը:
3. Master-slave համաժամացման ձգան
Redis master-slave replication-ում, երբ ստրուկ հանգույցը կատարում է ամբողջական վերարտադրման գործողություն, հիմնական հանգույցը կկատարի bgsave հրամանը՝ RDB ֆայլը ստրուկ հանգույց ուղարկելու համար: Այս գործընթացը ավտոմատ կերպով գործարկում է Redis-ի համառությունը:
Redis-ը հրամանների միջոցով կարող է հարցումներ կատարել կազմաձևման ընթացիկ պարամետրերի վրա:
Հարցման հրամանի ձևաչափն է.config get xxx
Օրինակ, եթե ցանկանում եք ստանալ RDB ֆայլի պահեստավորման անվան կարգավորումը, կարող եք օգտագործել config get dbfilename
.
Կատարման էֆեկտը հետևյալն է.
127.0.0.1:6379> config get dbfilename 1) "dbfilename" 2) "dump.rdb"
Քանի որ Redis սերվերը կարգելափակվի RDB ֆայլը բեռնելիս, մինչև բեռնումը ավարտվի, դա կարող է երկար ժամանակ առաջացնել, և վեբ կայք մուտք գործելը անհնար է:
Եթե ցանկանում եք ձեռքով ջնջել Redis-ի dump.rdb քեշ ֆայլը, կարող եք օգտագործել հետևյալ հրամանը՝ dump.rdb ֆայլի պահեստավորման ուղին գտնելու համար ▼
find / -name dump.rdb
- Այնուհետև SSH-ի միջոցով ձեռքով ջնջեք dump.rdb քեշ ֆայլը:
Redis-ը սահմանում է RDB-ի կոնֆիգուրացիան
Ինչ վերաբերում է RDB-ի կոնֆիգուրացիան սահմանելուն, կարող եք օգտագործել հետևյալ երկու եղանակները.
- Ձեռքով փոփոխեք Redis-ի կազմաձևման ֆայլը
- Օգտագործեք հրամանի տողի կարգավորումները, կոնֆիգուրացիայի սահմանումը dir «/usr/data» պահեստավորման հրամանն է՝ RDB ֆայլը փոփոխելու համար:
Նշում. redis.conf-ի կոնֆիգուրացիան կարելի է ստանալ config get xxx-ի միջոցով և փոփոխել config set xxx արժեքի միջոցով, իսկ Redis-ի կազմաձևման ֆայլը ձեռքով փոփոխելու մեթոդը գլոբալ արդյունավետ է, այսինքն՝ Redis սերվերը վերագործարկելու միջոցով սահմանված պարամետրերը չեն կորցնել, բայց փոփոխվել՝ օգտագործելով հրամանը, այն կկորչի Redis-ի վերագործարկումից հետո:
Այնուամենայնիվ, եթե ցանկանում եք ձեռքով փոփոխել Redis-ի կազմաձևման ֆայլը, որպեսզի անմիջապես ուժի մեջ մտնի, դուք պետք է վերագործարկեք Redis սերվերը, և հրամանի մեթոդը չի պահանջում վերագործարկել Redis սերվերը:
RDB ֆայլի վերականգնում
Երբ Redis սերվերը սկսվում է, եթե RDB ֆայլը dump.rdb գոյություն ունի Redis արմատական գրացուցակում, Redis-ը ավտոմատ կերպով կբեռնի RDB ֆայլը՝ մշտական տվյալները վերականգնելու համար:
Եթե արմատային գրացուցակում dump.rdb ֆայլ չկա, խնդրում ենք, նախ տեղափոխեք dump.rdb ֆայլը Redis-ի արմատական գրացուցակ:
Իհարկե, կա տեղեկամատյանների տեղեկատվություն, երբ Redis-ը սկսվում է, որը ցույց կտա, թե արդյոք RDB ֆայլը բեռնված է:
Redis սերվերը արգելափակում է RDB ֆայլը բեռնելիս, մինչև բեռնումն ավարտվի:
Այժմ մենք գիտենք, որ RDB համառությունը բաժանված է երկու եղանակով՝ ձեռքով գործարկում և ավտոմատ գործարկում.
- Դրա առավելությունն այն է, որ պահեստավորման ֆայլը փոքր է, և տվյալների վերականգնումն ավելի արագ է, երբ Redis-ը գործարկվի:
- Բացասական կողմն այն է, որ տվյալների կորստի վտանգ կա:
RDB ֆայլերի վերականգնումը նույնպես շատ պարզ է: Պարզապես տեղադրեք RDB ֆայլերը Redis-ի արմատային գրացուցակում, և Redis-ը ավտոմատ կերպով կբեռնի և կվերականգնի տվյալները, երբ այն սկսվի:
RDB-ի առավելություններն ու թերությունները
1) RDB առավելությունները
RDB-ի բովանդակությունը երկուական տվյալ է, որն ավելի քիչ հիշողություն է զբաղեցնում, ավելի կոմպակտ է և ավելի հարմար է որպես պահեստային ֆայլ;
RDB-ն շատ օգտակար է աղետի վերականգնման համար, այն սեղմված ֆայլ է, որը կարող է ավելի արագ փոխանցվել հեռավոր սերվերին՝ Redis ծառայության վերականգնման համար;
RDB-ն կարող է զգալիորեն բարելավել Redis-ի արագությունը, քանի որ Redis-ի հիմնական պրոցեսը կհրաժարվի երեխայի գործընթացին՝ տվյալների սկավառակի վրա պահպանելու համար:
Redis-ի հիմնական պրոցեսը չի կատարում այնպիսի գործողություններ, ինչպիսիք են սկավառակի մուտքը/ելքը;
Համեմատած AOF ֆորմատի ֆայլերի հետ՝ RDB ֆայլերը ավելի արագ են վերագործարկվում:
2) RDB-ի թերությունները
Քանի որ RDB-ն կարող է տվյալներ պահպանել միայն որոշակի ժամանակային ընդմիջումով, եթե Redis ծառայությունը պատահաբար դադարեցվի կեսից, Redis-ի տվյալները կկորչեն որոշակի ժամանակով;
Գործընթաց, որտեղ RDB-ն պահանջում է հաճախակի պատառաքաղներ՝ այն սկավառակի վրա պահելու համար՝ օգտագործելով subentry:
Եթե տվյալների շտեմարանը մեծ է, պատառաքաղը կարող է ժամանակատար լինել, իսկ եթե տվյալների շտեմարանը մեծ է, պրոցեսորի աշխատանքը վատ է, ինչը կարող է հանգեցնել այն բանին, որ Redis-ը չկարողանա սպասարկել հաճախորդներին մի քանի միլիվայրկյան կամ նույնիսկ մեկ վայրկյան:
Իհարկե, մենք կարող ենք նաև անջատել համառությունը՝ Redis-ի կատարման արդյունավետությունը բարելավելու համար:
Եթե դուք զգայուն չեք տվյալների կորստի նկատմամբ, կարող եք դա անել, երբ հաճախորդը միանա config set save ""
Redis-ի համար համառությունն անջատելու հրաման:
在redis.conf
, եթե ներսsave
Մեկնաբանեք բոլոր կոնֆիգուրացիաները սկզբում, և համառությունը նույնպես կանջատվի, բայց դա սովորաբար չի արվում:
Հույս Chen Weiliang բլոգ ( https://www.chenweiliang.com/ ) կիսվել է «Ինչ է Redis RDB-ի ամբողջական անունը: Redis RDB In-Memory Data Persistence Operation Mode»-ը կօգնի ձեզ:
Բարի գալուստ՝ կիսելու այս հոդվածի հղումը.https://www.chenweiliang.com/cwl-26677.html
Բարի գալուստ Chen Weiliang-ի բլոգի Telegram ալիք՝ վերջին թարմացումները ստանալու համար:
📚 Այս ուղեցույցը պարունակում է հսկայական արժեք, 🌟Սա հազվագյուտ հնարավորություն է, բաց մի՛ թողեք այն։ ⏰⌛💨
Տարածեք և հավանեք, եթե հավանեցիք:
Ձեր տարածումը և հավանումները մեր շարունակական շարժառիթն են: