Ո՞րն է Redis RDB-ի ամբողջական անունը: Redis RDB հիշողության տվյալների համառ աշխատանքի ռեժիմ

RDB-ի լրիվ անվանումն էRedis database.

  • Ինչպես անունն է հուշում, RDB-ն Redis տվյալների բազա է, որն օգտագործվում է տվյալների պահպանման համար:
  • Հետևաբար, RDB համառության միջոցով Redis հիշողության մեջ պահվող տվյալները գրվում են RDB ֆայլում և պահվում սկավառակի վրա՝ կայունության հասնելու համար:
  • Redis-ի առանձնահատկությունն այն է, որ այն կարող է պահպանել տվյալները, այսինքն՝ գրել տվյալներ հիշողության մեջ սկավառակի վրա, որպեսզի համոզվի, որ ոչ մի տվյալ չի կորչում, ինչպես նաև կարող է բեռնել տվյալները սկավառակից հիշողության մեջ:

Ո՞րն է Redis RDB-ի ամբողջական անունը: Redis RDB հիշողության տվյալների համառ աշխատանքի ռեժիմ

Սկզբում 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-ն

Համառությունը ձեռքով գործարկելու երկու գործողություն կա.savebgsave.

Նրանց միջև հիմնական տարբերությունն այն է, թե արդյոք արգելափակել 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-ի կոնֆիգուրացիան սահմանելուն, կարող եք օգտագործել հետևյալ երկու եղանակները.

  1. Ձեռքով փոփոխեք Redis-ի կազմաձևման ֆայլը
  2. Օգտագործեք հրամանի տողի կարգավորումները, կոնֆիգուրացիայի սահմանումը 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 համառությունը բաժանված է երկու եղանակով՝ ձեռքով գործարկում և ավտոմատ գործարկում.

  1. Դրա առավելությունն այն է, որ պահեստավորման ֆայլը փոքր է, և տվյալների վերականգնումն ավելի արագ է, երբ Redis-ը գործարկվի:
  2. Բացասական կողմն այն է, որ տվյալների կորստի վտանգ կա:

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 ալիք՝ վերջին թարմացումները ստանալու համար:

🔔 Եղեք առաջինը, ով կստանա արժեքավոր «ChatGPT բովանդակության շուկայավարման AI գործիքի օգտագործման ուղեցույցը» ալիքի վերին գրացուցակում: 🌟
📚 Այս ուղեցույցը պարունակում է հսկայական արժեք, 🌟Սա հազվագյուտ հնարավորություն է, բաց մի՛ թողեք այն։ ⏰⌛💨
Տարածեք և հավանեք, եթե հավանեցիք:
Ձեր տարածումը և հավանումները մեր շարունակական շարժառիթն են:

 

发表 评论

Ձեր էլ. Փոստի հասցեն չի հրապարակվի: Օգտագործվում են պահանջվող դաշտերը * Պիտակ

ոլորել դեպի վերև