ලිපි නාමාවලිය
RDB හි සම්පූර්ණ නම වේRedis database
.
- නමට අනුව, RDB යනු දත්ත ගබඩා කිරීමට භාවිතා කරන Redis දත්ත ගබඩාවකි.
- එබැවින්, RDB persistence හරහා, Redis මතකයේ ගබඩා කර ඇති දත්ත RDB ගොනුවට ලියා තැටියට සුරකිනු ඇත.
- Redis හි ලක්ෂණය වන්නේ එයට දත්ත නොනැසී පැවතිය හැකි වීමයි, එනම් දත්ත නැති නොවන බව සහතික කිරීම සඳහා මතකයේ ඇති දත්ත තැටියට ලිවීමට සහ තැටියේ සිට මතකයට දත්ත පැටවිය හැක.
ආරම්භයේ දී Redis හි මෙහෙයුම් සියල්ල මතකය මත පදනම් වේ, එබැවින් කාර්ය සාධනය ඉතා ඉහළ ය, නමුත් වැඩසටහන වසා දැමූ පසු, දත්ත නැති වී යයි.
එම නිසා, අපට මතකයේ ඇති දත්ත නිශ්චිත කාල පරාසයන් තුළ තැටියට ලිවීමට අවශ්ය වේ, එය ප්රභාෂාවෙන් Snapshot වේ.
ප්රතිසාධනය කරන විට, ස්නැප්ෂොට් ගොනුව කෙලින්ම මතකයට ලියා ඇත.
මෙයද Redis සහ Memcached අතර ඇති ප්රධාන වෙනස්කම් වලින් එකකි, මන්ද Memcached හට නොනැසී පැවතීමේ හැකියාවක් නොමැත.
Redis මතක දත්තවල අඛණ්ඩ පැවැත්ම සඳහා, Redis අපට පහත ක්රම සපයයි:
- Snapshot ක්රමය (RDB, Redis DataBase): නිශ්චිත මොහොතක ද්විමය ආකාරයෙන් මතක දත්ත තැටියට ලියන්න;
- ගොනුව පමණක් එකතු කරන්න (AOF, ගොනුව පමණක් එකතු කරන්න), සියලුම මෙහෙයුම් විධාන වාර්තා කරන්න, සහ පෙළ ආකාරයෙන් ගොනුවට එකතු කරන්න;
- Hybrid persistence, Redis 4.0 ට පසු නව ක්රමයක්, hybrid persistence RDB සහ AOF හි වාසි ඒකාබද්ධ කරයි.ලිවීමේදී, ප්රථමයෙන් වත්මන් දත්ත RDB ආකාරයෙන් ගොනුවේ ආරම්භයට ලියන්න, පසුව AOF ආකාරයෙන් ගොනුව වෙත ඊළඟ මෙහෙයුම් විධාන සුරකින්න, එය Redis නැවත ආරම්භ කිරීමේ වේගය සහතික කිරීමට පමණක් නොව, අඩු කිරීමටද හැකිය. දත්ත අහිමි වීමේ අවදානම.
එක් එක් ස්ථීර යෝජනා ක්රමයට නිශ්චිත භාවිත අවස්ථා ඇති නිසා.
Redis RDB මතක දත්ත ස්ථීර මෙහෙයුම් ආකාරය
- RDB (Redis DataBase) යනු කිසියම් මොහොතක මතක ස්නැප්ෂොට් එකක් (Snapshot) ද්විමය ආකාරයෙන් තැටියට ලිවීමේ ක්රියාවලියයි.
- මතක ස්නැප්ෂොට් අපි ඉහත කී දේ.එය නිශ්චිත මොහොතක මතකයේ ඇති දත්තවල රාජ්ය වාර්තාවට යොමු කරයි.
- මෙය ඡායාරුපයක් ගැනීම හා සමානයි.ඔබ මිතුරෙකුගේ ඡායාරූපයක් ගන්නා විට, ඡායාරූපයකට මිතුරාගේ සියලුම පින්තූර ක්ෂණිකව පටිගත කළ හැක.
- RDB ක්රියා විරහිත කිරීමට ක්රම දෙකක් තිබේ: එකක් අතින් ක්රේරක වන අතර අනෙක ස්වයංක්රීය ප්රේරක වේ.
RDB අතින් ක්රියාරම්භ කරන්න
නොනැසී පැවතීම අතින් ප්රේරණය කිරීමට මෙහෙයුම් දෙකක් තිබේ:save
和bgsave
.
ඔවුන් අතර ඇති ප්රධාන වෙනස වන්නේ Redis ප්රධාන නූල් ක්රියාත්මක කිරීම අවහිර කිරීම හෝ නොකිරීමයි.
1. save command
සේවාලාභියාගේ පැත්තේ සුරැකීමේ විධානය ක්රියාත්මක කිරීම Redis හි නොනැසී පැවතීම අවුලුවාලනු ඇත, නමුත් එය Redis අවහිර කිරීමේ තත්වයකට ද පත් කරයි. RDB දිගටම පවතින තුරු එය වෙනත් සේවාදායකයින් විසින් එවන ලද විධානවලට ප්රතිචාර නොදක්වයි, එබැවින් එය ප්රවේශමෙන් භාවිතා කළ යුතුය. නිෂ්පාදන පරිසරය.
127.0.0.1:6379> save OK 127.0.0.1:6379>
විධානය ක්රියාත්මක කිරීමේ ක්රියාවලිය රූපයේ දැක්වේ
2. bgsave විධානය
- bgsave (පසුබිම් සුරැකීම) යනු පසුබිම් සුරැකීමකි.
- එය සහ සුරැකීමේ විධානය අතර ඇති ලොකුම වෙනස නම්, bgsave ළමා ක්රියාවලියක් අඛණ්ඩව සිදු කිරීම සඳහා වෙන් කිරීමයි.
- සම්පූර්ණ ක්රියාවලිය සිදු වන්නේ ළමා ක්රියාවලිය දෙබලක වූ විට පමණි.ඇත්තේ කෙටි අවහිරයක් පමණි.
- ළමා ක්රියාවලිය නිර්මාණය කිරීමෙන් පසු, රෙඩිස් හි ප්රධාන ක්රියාවලියට වෙනත් සේවාදායකයින්ගේ ඉල්ලීම්වලට ප්රතිචාර දැක්විය හැක.
සමස්ත ක්රියාවලියම අවහිර කිරීමත් සමඟsave
විධානයට සාපේක්ෂවbgsave
විධානය අපට භාවිතා කිරීමට වඩාත් සුදුසු බව පැහැදිලිය.
127.0.0.1:6379> bgsave Background Saving started # 提示开始后台保存 127.0.0.1:6379>
RDB ස්වයංක්රීයව ක්රියාරම්භ කරන්න
Manual triggering ගැන කතා කලාට පස්සේ automatic triggering ගැන බලමු.වින්යාස ගොනුවේ ස්වයංක්රීය ප්රේරක සඳහා කොන්දේසි අපට වින්යාසගත කළ හැක.
1. mn ඉතිරි කරන්න
- save mn යන්නෙන් අදහස් වන්නේ m තත්පර කිහිපයකින්, n යතුරු වෙනස් වුවහොත්, persistence ස්වයංක්රීයව ක්රියා විරහිත වන බවයි.m සහ n පරාමිති Redis වින්යාස ගොනුවේ සොයාගත හැක.
- උදාහරණයක් ලෙස, 60 1 සුරකින්න යන්නෙන් අදහස් වන්නේ තත්පර 60 ක් ඇතුළත, එක් යතුරක් වෙනස් වන තාක්, RDB නොනැසී පවතින බව ය.
- ස්වයංක්රීයව ස්ථීරභාවය ප්රේරණය කිරීමේ සාරය නම්, සැකසූ ප්රේරක කොන්දේසි සපුරා ඇත්නම්, Redis ස්වයංක්රීයව bgsave විධානය එක් වරක් ක්රියාත්මක කරයි.
සටහන: save mn විධාන කිහිපයක් සකසා ඇති විට, ඕනෑම එක් කොන්දේසියක් නොනැසී පවතිනු ඇත.
උදාහරණයක් ලෙස, අපි පහත save mn විධාන දෙක සකස් කරමු:
save 60 10 save 600 20
- Redis යතුරු අගය 60s තුළ 10 වතාවක් වෙනස් වන විට, නොනැසී පවතිනු ඇත;
- Redis යතුර 60s තුළ වෙනස් වේ නම් සහ අගය 10 ගුණයකට වඩා අඩුවෙන් වෙනස් වන්නේ නම්, Redis යතුර 600s තුළ අවම වශයෙන් 20 වතාවක් වෙනස් කර තිබේද යන්න තීරණය කරයි, එසේ නම්, දිගටම පවතින්න.
2. Flushall
- flushall විධානය Redis දත්ත සමුදාය ෆ්ලෂ් කිරීමට භාවිතා කරයි.
- නිෂ්පාදන පරිසරයකදී එය ප්රවේශමෙන් භාවිතා කළ යුතුය.
- Redis flushall විධානය ක්රියාත්මක කරන විට, එය ස්වයංක්රීයව පවතිනු ඇති අතර RDB ගොනු ඉවත් කරයි.
3. Master-slave synchronization trigger
Redis master-slave replication වලදී, slave node එක සම්පුර්ණ relication මෙහෙයුමක් සිදු කරන විට, master node එක RDB ගොනුව slave node වෙත යැවීමට bgsave විධානය ක්රියාත්මක කරයි.මෙම ක්රියාවලිය ස්වයංක්රීයව Redis persistence අවුලුවයි.
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 set xxx අගය හරහා වෙනස් කළ හැකි අතර, Redis වින්යාස ගොනුව අතින් වෙනස් කිරීමේ ක්රමය ගෝලීය වශයෙන් ඵලදායී වේ, එනම් Redis සේවාදායකය නැවත ආරම්භ කිරීමෙන් සකසා ඇති පරාමිතියන් එසේ නොවේ. නැති වී යයි, නමුත් විධානය භාවිතයෙන් වෙනස් කර ඇත, එය Redis නැවත ආරම්භ කිරීමෙන් පසු නැති වී යයි.
කෙසේ වෙතත්, ඔබට වහාම ක්රියාත්මක වන පරිදි Redis වින්යාස ගොනුව අතින් වෙනස් කිරීමට අවශ්ය නම්, ඔබ Redis සේවාදායකය නැවත ආරම්භ කළ යුතු අතර, විධාන ක්රමයට Redis සේවාදායකය නැවත ආරම්භ කිරීම අවශ්ය නොවේ.
RDB ගොනු ප්රතිසාධනය
Redis සේවාදායකය ආරම්භ වූ විට, RDB ගොනුව dump.rdb Redis root බහලුම තුළ පවතී නම්, Redis විසින් ස්ථිර දත්ත ප්රතිසාධනය කිරීමට RDB ගොනුව ස්වයංක්රීයව පූරණය කරනු ඇත.
මූල නාමාවලියෙහි dump.rdb ගොනුවක් නොමැති නම්, කරුණාකර පළමුව dump.rdb ගොනුව Redis හි මූල නාමාවලිය වෙත ගෙන යන්න.
ඇත්ත වශයෙන්ම, Redis ආරම්භ වන විට ලොග් තොරතුරු ඇත, එය RDB ගොනුව පටවා තිබේද යන්න පෙන්වයි.
RDB ගොනුව පැටවීම අවසන් වන තෙක් Redis සේවාදායකය අවහිර කරයි.
දැන් අපි දන්නවා RDB නොනැසී පැවතීම ක්රම දෙකකට බෙදා ඇති බව: අතින් ප්රේරක සහ ස්වයංක්රීය ප්රේරක:
- එහි වාසිය නම් ගබඩා ගොනුව කුඩා වන අතර Redis ආරම්භ කරන විට දත්ත ප්රතිසාධනය වේගවත් වේ.
- අවාසිය නම් දත්ත නැතිවීමේ අවදානමක් තිබීමයි.
RDB ගොනු ප්රතිසාධනය ද ඉතා සරල ය. RDB ගොනු Redis හි මූල නාමාවලියට දමන්න, එවිට Redis එය ආරම්භ වූ විට දත්ත ස්වයංක්රීයව පූරණය කර ප්රතිසාධනය කරයි.
RDB වාසි සහ අවාසි
1) RDB වාසි
RDB අන්තර්ගතය ද්විමය දත්ත වේ, අඩු මතකයක් ගනී, වඩා සංයුක්ත වේ, සහ උපස්ථ ගොනුවක් ලෙස වඩාත් සුදුසු ය;
RDB ආපදා ප්රතිසාධනය සඳහා ඉතා ප්රයෝජනවත් වේ, එය Redis සේවා ප්රතිසාධනය සඳහා ඉක්මනින් දුරස්ථ සේවාදායකයකට මාරු කළ හැකි සම්පීඩිත ගොනුවකි;
RDB හට Redis හි වේගය බෙහෙවින් වැඩි දියුණු කළ හැක, මන්ද ප්රධාන Redis ක්රියාවලිය ළමා ක්රියාවලියක් තැටියට දත්ත තබා ගැනීමට ඉඩ සලසයි.
Redis ප්රධාන ක්රියාවලිය තැටිය I/O වැනි මෙහෙයුම් සිදු නොකරයි;
AOF ආකෘති ගොනු සමඟ සසඳන විට, RDB ගොනු වේගයෙන් නැවත ආරම්භ වේ.
2) RDB හි අවාසි
RDB හට දත්ත සුරැකිය හැක්කේ නිශ්චිත කාල පරතරයකදී පමණක් නිසා, Redis සේවාව අහම්බෙන් මැදදී අවසන් වුවහොත්, යම් කාලයක් සඳහා Redis දත්ත නැති වී යයි;
RDB හට subentry භාවිතයෙන් තැටියේ තබා ගැනීමට නිතර ගෑරුප්පු අවශ්ය වන ක්රියාවලියකි.
දත්ත කට්ටලය විශාල නම්, fork කාලය ගත විය හැකි අතර, දත්ත කට්ටලය විශාල නම්, CPU කාර්ය සාධනය දුර්වල බැවින්, Redis හට මිලි තත්පර කිහිපයක් හෝ තත්පරයක් පවා සේවාදායකයින්ට සේවය කිරීමට නොහැකි විය හැක.
ඇත්ත වශයෙන්ම, අපට රෙඩිස් ක්රියාත්මක කිරීමේ කාර්යක්ෂමතාව වැඩි දියුණු කිරීම සඳහා නොනැසී පැවතීම අක්රීය කළ හැකිය.
ඔබ දත්ත නැතිවීමට සංවේදී නොවේ නම්, සේවාදායකයා සම්බන්ධ වූ විට ඔබට මෙය කළ හැකිය config set save ""
Redis සඳහා ස්ථීරභාවය අබල කිරීමට විධානය.
在redis.conf
, ඇතුලේ නම්save
ආරම්භයේ දී සියලු වින්යාසයන් අදහස් දක්වන්න, එවිට ස්ථීරභාවය ද අක්රිය වනු ඇත, නමුත් මෙය සාමාන්යයෙන් සිදු නොවේ.
Hope Chen Weiliang බ්ලොග් ( https://www.chenweiliang.com/ ) shared "Redis RDB හි සම්පූර්ණ නම කුමක්ද? Redis RDB In-Memory Data Persistence Operation Mode, එය ඔබට උපකාර වනු ඇත.
මෙම ලිපියේ සබැඳිය බෙදා ගැනීමට සාදරයෙන් පිළිගනිමු:https://www.chenweiliang.com/cwl-26677.html
නවතම යාවත්කාලීන ලබා ගැනීමට Chen Weiliang ගේ බ්ලොගයේ Telegram නාලිකාව වෙත සාදරයෙන් පිළිගනිමු!
📚 මෙම මාර්ගෝපදේශයෙහි විශාල වටිනාකමක් ඇත, 🌟මෙය දුර්ලභ අවස්ථාවක්, එය අතපසු නොකරන්න! ⏰⌛💨
ඔබ කැමති නම් Share කර Like කරන්න!
ඔබගේ බෙදාගැනීම් සහ කැමැත්ත අපගේ අඛණ්ඩ අභිප්රේරණයයි!