បញ្ជីអត្ថបទ
ឈ្មោះពេញរបស់ RDB គឺRedis database
។
- ដូចដែលឈ្មោះបានបង្ហាញ RDB គឺជាមូលដ្ឋានទិន្នន័យ Redis ដែលប្រើដើម្បីរក្សាទុកទិន្នន័យ។
- ដូច្នេះតាមរយៈការតស៊ូរបស់ RDB ទិន្នន័យដែលរក្សាទុកក្នុងអង្គចងចាំ Redis ត្រូវបានសរសេរទៅឯកសារ RDB ហើយរក្សាទុកទៅក្នុងថាសដើម្បីសម្រេចបាននូវភាពស្ថិតស្ថេរ។
- លក្ខណៈពិសេសរបស់ Redis គឺថាវាអាចបន្តទិន្នន័យ ពោលគឺសរសេរទិន្នន័យក្នុងអង្គចងចាំទៅក្នុងថាស ដើម្បីធានាថាគ្មានទិន្នន័យណាមួយត្រូវបានបាត់បង់ ហើយក៏អាចផ្ទុកទិន្នន័យពីថាសទៅក្នុងអង្គចងចាំផងដែរ។
ប្រតិបត្តិការរបស់ Redis នៅដើមដំបូងគឺផ្អែកលើអង្គចងចាំ ដូច្នេះដំណើរការគឺខ្ពស់ណាស់ ប៉ុន្តែនៅពេលដែលកម្មវិធីត្រូវបានបិទ ទិន្នន័យនឹងបាត់បង់។
ដូច្នេះហើយ យើងត្រូវសរសេរទិន្នន័យក្នុងអង្គចងចាំទៅក្នុងថាសនៅចន្លោះពេលដែលបានបញ្ជាក់ ដែលជា Snapshot នៅក្នុង jargon ។
នៅពេលស្តារឯកសាររូបថតត្រូវបានសរសេរដោយផ្ទាល់ទៅអង្គចងចាំ។
នេះក៏ជាភាពខុសគ្នាដ៏សំខាន់មួយរវាង Redis និង Memcached ផងដែរ ពីព្រោះ Memcached មិនមានសមត្ថភាពតស៊ូ។
ចំពោះការជាប់លាប់នៃទិន្នន័យអង្គចងចាំ Redis Redis ផ្តល់ឱ្យយើងនូវវិធីសាស្រ្តដូចខាងក្រោមៈ
- វិធីសាស្ត្រ Snapshot (RDB, Redis DataBase): សរសេរទិន្នន័យអង្គចងចាំទៅក្នុងថាសក្នុងទម្រង់គោលពីរនៅពេលជាក់លាក់ណាមួយ;
- បន្ថែមតែឯកសារ (AOF បន្ថែមតែឯកសារ) កត់ត្រាពាក្យបញ្ជាប្រតិបត្តិការទាំងអស់ ហើយបន្ថែមទៅឯកសារក្នុងទម្រង់ជាអត្ថបទ។
- Hybrid persistence ដែលជាវិធីសាស្រ្តថ្មីមួយបន្ទាប់ពី Redis 4.0 ការតស៊ូកូនកាត់រួមបញ្ចូលគ្នានូវគុណសម្បត្តិនៃ RDB និង AOF ។នៅពេលសរសេរដំបូងត្រូវសរសេរទិន្នន័យបច្ចុប្បន្នទៅដើមឯកសារក្នុងទម្រង់ RDB ហើយបន្ទាប់មករក្សាទុកពាក្យបញ្ជាប្រតិបត្តិការជាបន្តបន្ទាប់ទៅឯកសារក្នុងទម្រង់ AOF ដែលមិនត្រឹមតែអាចធានាបាននូវល្បឿននៃការចាប់ផ្តើម Redis ឡើងវិញប៉ុណ្ណោះទេ ប៉ុន្តែថែមទាំងកាត់បន្ថយផងដែរ។ ហានិភ័យនៃការបាត់បង់ទិន្នន័យ។
ដោយសារតែគម្រោងការតស៊ូនីមួយៗមានសេណារីយ៉ូនៃការប្រើប្រាស់ជាក់លាក់។
របៀបប្រតិបត្តិការរក្សាទិន្នន័យអង្គចងចាំ Redis RDB
- RDB (Redis DataBase) គឺជាដំណើរការនៃការសរសេររូបថតអង្គចងចាំ (Snapshot) នៅពេលជាក់លាក់មួយទៅថាសក្នុងទម្រង់គោលពីរ។
- រូបថតនៃការចងចាំគឺជាអ្វីដែលយើងបាននិយាយខាងលើ។វាសំដៅទៅលើកំណត់ត្រារដ្ឋនៃទិន្នន័យនៅក្នុងអង្គចងចាំនៅពេលជាក់លាក់ណាមួយ។
- នេះគឺស្រដៀងនឹងការថតរូប។ ពេលអ្នកថតរូបមិត្តភ័ក្ដិ រូបថតអាចថតរូបមិត្តភ័ក្ដិទាំងអស់បានភ្លាមៗ។
- មានវិធីពីរយ៉ាងក្នុងការកេះ RDB៖ មួយគឺការកេះដោយដៃ ហើយមួយទៀតគឺការកេះដោយស្វ័យប្រវត្តិ។
កេះ RDB ដោយដៃ
មានប្រតិបត្តិការពីរដើម្បីជំរុញការជាប់លាប់ដោយដៃ៖save
和។bgsave
។
ភាពខុសគ្នាសំខាន់រវាងពួកវាគឺថាតើត្រូវរារាំងការប្រតិបត្តិនៃខ្សែស្រឡាយមេ Redis ឬអត់។
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 អាចរកបាននៅក្នុងឯកសារកំណត់រចនាសម្ព័ន្ធ 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
- ពាក្យបញ្ជា flushall ត្រូវបានប្រើដើម្បីលុបមូលដ្ឋានទិន្នន័យ Redis ។
- វាត្រូវតែប្រើដោយប្រុងប្រយ័ត្នក្នុងបរិយាកាសផលិតកម្ម។
- នៅពេលដែល Redis ប្រតិបត្តិពាក្យបញ្ជា flushall វាបង្កឱ្យមានការតស៊ូដោយស្វ័យប្រវត្តិ និងសម្អាតឯកសារ RDB ។
3. គន្លឹះធ្វើសមកាលកម្ម Master-slave
នៅក្នុងការចម្លងមេរបស់ Redis នៅពេលដែលថ្នាំង slave ដំណើរការប្រតិបត្តិការចម្លងពេញលេញ ថ្នាំងមេនឹងប្រតិបត្តិពាក្យបញ្ជា bgsave ដើម្បីផ្ញើឯកសារ RDB ទៅកាន់ថ្នាំង slave ។ ដំណើរការនេះចាប់ផ្តើមដំណើរការ Redis ជាប់រហូត។
Redis អាចសួរប៉ារ៉ាម៉ែត្រកំណត់រចនាសម្ព័ន្ធបច្ចុប្បន្នតាមរយៈពាក្យបញ្ជា។
ទម្រង់នៃពាក្យបញ្ជាសំណួរគឺ៖config get xxx
ឧទាហរណ៍ ប្រសិនបើអ្នកចង់ទទួលបានការកំណត់ឈ្មោះការផ្ទុកឯកសារ RDB អ្នកអាចប្រើ config get dbfilename
។
ប្រសិទ្ធភាពនៃការប្រតិបត្តិមានដូចខាងក្រោម៖
127.0.0.1:6379> config get dbfilename 1) "dbfilename" 2) "dump.rdb"
ដោយសារម៉ាស៊ីនមេ Redis នឹងរារាំងនៅពេលផ្ទុកឯកសារ RDB រហូតដល់ការផ្ទុកបានបញ្ចប់ វាអាចបណ្តាលឱ្យមានរយៈពេលយូរ ហើយគេហទំព័រមិនអាចចូលប្រើបានទេ។
ប្រសិនបើអ្នកចង់លុបឯកសារឃ្លាំងសម្ងាត់ RDB ដោយដៃ dump.rdb នៃ Redis អ្នកអាចប្រើពាក្យបញ្ជាខាងក្រោមដើម្បីស្វែងរកផ្លូវផ្ទុកឯកសារ dump.rdb ▼
find / -name dump.rdb
- បន្ទាប់មក លុបឯកសារឃ្លាំងសម្ងាត់ dump.rdb ដោយដៃតាមរយៈ SSH ។
Redis កំណត់ការកំណត់រចនាសម្ព័ន្ធនៃ 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 ចាប់ផ្តើម ប្រសិនបើឯកសារ RDB dump.rdb មាននៅក្នុងថតឫសរបស់ Redis នោះ Redis នឹងផ្ទុកឯកសារ RDB ដោយស្វ័យប្រវត្តិ ដើម្បីស្ដារទិន្នន័យជាប់លាប់។
ប្រសិនបើមិនមានឯកសារ dump.rdb នៅក្នុងថត root សូមផ្លាស់ទីឯកសារ dump.rdb ទៅកាន់ថត root របស់ Redis ជាមុនសិន។
ជាការពិតណាស់មានព័ត៌មានកំណត់ហេតុនៅពេលដែល Redis ចាប់ផ្តើមដែលនឹងបង្ហាញថាតើឯកសារ RDB ត្រូវបានផ្ទុក។
ម៉ាស៊ីនមេ Redis រារាំងខណៈពេលកំពុងផ្ទុកឯកសារ RDB រហូតដល់ការផ្ទុកបានបញ្ចប់។
ឥឡូវនេះយើងដឹងថាការតស៊ូរបស់ RDB ត្រូវបានបែងចែកជាពីរវិធី៖ ការកេះដោយដៃ និងការកេះដោយស្វ័យប្រវត្តិ៖
- អត្ថប្រយោជន៍របស់វាគឺថាឯកសារផ្ទុកមានទំហំតូច ហើយការសង្គ្រោះទិន្នន័យកាន់តែលឿននៅពេលដែល Redis ត្រូវបានចាប់ផ្តើម។
- គុណវិបត្តិគឺថាមានហានិភ័យនៃការបាត់បង់ទិន្នន័យ។
ការសង្គ្រោះឯកសារ RDB ក៏សាមញ្ញណាស់ដែរ គ្រាន់តែដាក់ឯកសារ RDB នៅក្នុងថត root របស់ Redis ហើយ Redis នឹងផ្ទុក និងស្ដារទិន្នន័យដោយស្វ័យប្រវត្តិនៅពេលវាចាប់ផ្តើម។
គុណសម្បត្តិ និងគុណវិបត្តិរបស់ RDB
1) គុណសម្បត្តិរបស់ RDB
មាតិកា RDB គឺជាទិន្នន័យគោលពីរ កាន់កាប់អង្គចងចាំតិច បង្រួមកាន់តែច្រើន និងសមស្របជាងជាឯកសារបម្រុងទុក។
RDB មានប្រយោជន៍ខ្លាំងណាស់សម្រាប់ការសង្គ្រោះគ្រោះមហន្តរាយ វាគឺជាឯកសារដែលបានបង្ហាប់ដែលអាចត្រូវបានផ្ទេរទៅម៉ាស៊ីនមេពីចម្ងាយលឿនជាងមុនសម្រាប់ការសង្គ្រោះសេវា Redis ។
RDB អាចបង្កើនល្បឿន Redis យ៉ាងខ្លាំង ពីព្រោះដំណើរការ Redis ចម្បងនឹងបំបែកដំណើរការកុមារដើម្បីបន្តទិន្នន័យទៅឌីស។
ដំណើរការចម្បងរបស់ Redis មិនដំណើរការដូចជាថាស I/O ទេ។
បើប្រៀបធៀបជាមួយឯកសារទ្រង់ទ្រាយ AOF ឯកសារ RDB ចាប់ផ្តើមឡើងវិញលឿនជាងមុន។
2) គុណវិបត្តិនៃ RDB
ដោយសារតែ RDB អាចរក្សាទុកទិន្នន័យនៅចន្លោះពេលជាក់លាក់មួយ ប្រសិនបើសេវាកម្ម Redis ត្រូវបានបិទដោយចៃដន្យនៅកណ្តាល នោះទិន្នន័យ Redis នឹងត្រូវបាត់បង់ក្នុងរយៈពេលមួយ។
ដំណើរការដែល RDB ត្រូវការសមញឹកញាប់ ដើម្បីរក្សាវានៅលើថាសដោយប្រើធាតុរង។
ប្រសិនបើសំណុំទិន្នន័យមានទំហំធំ សមអាចចំណាយពេលច្រើន ហើយប្រសិនបើសំណុំទិន្នន័យមានទំហំធំ ដំណើរការស៊ីភីយូអន់ ដែលអាចបណ្តាលឱ្យ Redis មិនអាចបម្រើអតិថិជនក្នុងរយៈពេលពីរបីមីលីវិនាទី ឬសូម្បីតែមួយវិនាទី។
ជាការពិតណាស់ យើងក៏អាចបិទការតស៊ូដើម្បីបង្កើនប្រសិទ្ធភាពការប្រតិបត្តិរបស់ Redis។
ប្រសិនបើអ្នកមិនប្រកាន់អក្សរតូចធំចំពោះការបាត់បង់ទិន្នន័យទេ អ្នកអាចធ្វើវាបាននៅពេលម៉ាស៊ីនភ្ញៀវភ្ជាប់ config set save ""
ពាក្យបញ្ជាដើម្បីបិទការតស៊ូសម្រាប់ Redis ។
在។redis.conf
, ប្រសិនបើនៅក្នុងsave
បញ្ចេញមតិលើការកំណត់រចនាសម្ព័ន្ធទាំងអស់នៅដើមដំបូង ហើយការតស៊ូក៏នឹងត្រូវបិទដែរ ប៉ុន្តែជាទូទៅវាមិនត្រូវបានធ្វើទេ។
Hope Chen Weiliang Blog ( https://www.chenweiliang.com/ ) បានចែករំលែកថា "តើឈ្មោះពេញរបស់ Redis RDB ជាអ្វី? Redis RDB In-Memory Data Operation Mode ដែលនឹងជួយអ្នក។
សូមស្វាគមន៍ចំពោះការចែករំលែកតំណភ្ជាប់នៃអត្ថបទនេះ៖https://www.chenweiliang.com/cwl-26677.html
សូមស្វាគមន៍មកកាន់ឆានែល Telegram នៃប្លុករបស់ Chen Weiliang ដើម្បីទទួលបានព័ត៌មានថ្មីៗចុងក្រោយបង្អស់!
📚 មគ្គុទ្ទេសក៍នេះមានតម្លៃមហាសាល 🌟នេះជាឱកាសដ៏កម្រ សូមកុំអូសរំលង! ⏰⌛💨
Share និង Like ប្រសិនបើអ្នកចូលចិត្ត!
ការចែករំលែក និងការចូលចិត្តរបស់អ្នកគឺជាការលើកទឹកចិត្តបន្តរបស់យើង!