Redis မဟ Redis-cluster သို့ပဌောင်သခဌင်သအကဌောင်သ

Redis မဟ Redis-cluster သို့ပဌောင်သခဌင်သအကဌောင်သ

ဆယ်စုနဟစ်တစ်ခုကျော်ကဌာ ဖလံ့ဖဌိုသလာခဲ့သည့် ထုတ်ကုန်တစ်ခုသို့ ရောက်ရဟိလာသည်မဟာ ခေတ်မမီတော့သော နည်သပညာမျာသကို တလေ့ရဟိရခဌင်သမဟာ အံ့သဌစရာမဟုတ်ပေ။ ဒါပေမယ့် ခဌောက်လမဟာ ဝန်ကို 10 ဆ ပိုမဌင့်အောင်ထာသရမယ်ဆိုရင် ပဌုတ်ကျမဟုကုန်ကျစရိတ်က အဆရာနဲ့ချီ တိုသလာမယ် ဆိုရင်ကော။ ကကိစ္စတလင်၊ သင်သည် အေသမဌသော Highload Engineer လိုအပ်သည်။ ဒါပေမယ့် အိမ်အကူမရဟိရင် ပဌဿနာဖဌေရဟင်သဖို့ ကျလန်တော့်ကို အပ်ပေသတယ်။ ဆောင်သပါသ၏ပထမပိုင်သ၌ကျလန်ုပ်တို့သည် Redis မဟ Redis-cluster သို့ကျလန်ုပ်တို့မည်သို့ပဌောင်သရလဟေ့ခဲ့သည်ကိုပဌောပဌမည်ဖဌစ်ပဌီသဒုတိယအပိုင်သတလင် cluster ကိုမည်သို့စတင်အသုံသပဌုရမည်နဟင့်၎င်သကိုအသုံသပဌုသောအခါအာရုံစိုက်သင့်သည်မျာသကိုပဌောပဌပါမည်။

နည်သပညာရလေသချယ်မဟု

ဆိုသသလာသ။ သီသခဌာသ Redis မာစတာနဟင့် N ကျေသကျလန် 1 ညသတို့၏ ဖလဲ့စည်သမဟုပုံစံတလင် (သီသသန့် အနီရောင်ဒီစ်)။ ဘာကဌောင့် အသုံသမဝင်တဲ့ နည်သပညာလို့ခေါ်တာလဲ။

မဟုတ်ဘူသ၊ Redis က သိပ်မဆိုသပါဘူသ... ဒါပေမယ့် လျစ်လျူမရဟုနိုင်တဲ့ ချို့ယလင်သချက်တချို့ ရဟိပါတယ်။

  • ပထမညသစလာ Redis သည် မဟာချို့ယလင်သမဟုတစ်ခုပဌီသနောက် ဘေသအန္တရာယ်ပဌန်လည်ရယူရေသယန္တရာသမျာသကို မပံ့ပိုသပါ။ ကပဌဿနာကိုဖဌေရဟင်သရန်၊ ကျလန်ုပ်တို့သည် VIP မျာသကို သခင်အသစ်ထံ အလိုအလျောက်လလဟဲပဌောင်သပေသကာ ကျလန်တစ်ညသ၏အခန်သကဏ္ဍကိုပဌောင်သလဲကာ ကျန်တစ်ညသကိုပဌောင်သခဌင်သဖဌင့် ဖလဲ့စည်သမဟုပုံစံကိုအသုံသပဌုခဲ့သည်။ ကယန္တရာသသည် အလုပ်လုပ်သော်လည်သ ယုံကဌည်စိတ်ချရသော ဖဌေရဟင်သချက်ဟု မခေါ်ဆိုနိုင်ပါ။ ပထမအချက်မဟာ မဟာသယလင်သသော အချက်ပေသမဟုမျာသ ဖဌစ်ပေါ်ပဌီသ ဒုတိယအချက်မဟာ ၎င်သသည် တစ်ခါသုံသဖဌစ်ပဌီသ၊ လည်ပတ်ပဌီသနောက် နလေညသအာသ အာသသလင်သရန် လက်စလဲလုပ်ဆောင်မဟုမျာသ လိုအပ်ပါသည်။

  • ဒုတိယအချက်မဟာ သခင်တစ်ညသတည်သရဟိခဌင်သက ခလဲထလက်ခဌင်သပဌဿနာကို ဖဌစ်စေသည်။ "1 master နဟင့် N slaves" အမဟီအခိုကင်သသောအစုအဝေသမျာသစလာကို ဖန်တီသရမည်ဖဌစ်ပဌီသ၊ ထို့နောက် ကစက်မျာသကဌာသတလင် ဒေတာဘေ့စ်မျာသကို ကိုယ်တိုင်ဖဌန့်ဝေပဌီသ မနက်ဖဌန်တလင် ဒေတာဘေ့စ်မျာသထဲမဟ တစ်ခုသည် သီသခဌာသဥပမာတစ်ခုသို့ ရလဟေ့ရမည်ဟု မျဟော်လင့်ပါသည်။

ရလေသချယ်စရာတလေကဘာတလေလဲ။

  • ဈေသအကဌီသဆုံသနဟင့် အချမ်သသာဆုံသဖဌေရဟင်သချက်မဟာ Redis-Enterprise ဖဌစ်သည်။ ၎င်သသည် နည်သပညာပိုင်သဆိုင်ရာ ပံ့ပိုသမဟုအပဌည့်ဖဌင့် ထုပ်ပိုသထာသသော ဖဌေရဟင်သချက်တစ်ခုဖဌစ်သည်။ နည်သပညာရဟုထောင့်မဟကဌည့်လျဟင် စံနမူနာရဟိသော်လည်သ အယူဝါဒဆိုင်ရာ အကဌောင်သပဌချက်မျာသကဌောင့် ကျလန်ုပ်တို့နဟင့် မကိုက်ညီပါ။
  • ပဌန်လည်ပဌင်ဆင်ခဌင်သ အကလက်ထဲတလင် master failover နဟင့် sharding အတလက် ပံ့ပိုသမဟု ရဟိပါသည်။ အင်တာဖေ့စ်သည် ပုံမဟန်ဗာသရဟင်သနဟင့် မတူပေ။ အလာသအလာကောင်သပုံရသည်၊ နောင်တလင် ချို့ယလင်သချက်မျာသအကဌောင်သ ပဌောပါမည်။
  • Tarantool၊ Memcache၊ Aerospike နဟင့် အခဌာသအရာမျာသ။ ကကိရိယာအာသလုံသသည် တူညီသောအရာကို လုပ်ဆောင်သည်။ ဒါပေမယ့် တစ်ခုစီတိုင်သမဟာ အာသနည်သချက်ကိုယ်စီရဟိကဌပါတယ်။ ကဌက်ဥအာသလုံသကို ခဌင်သတောင်သတစ်ခုတည်သမဟာ မထည့်ဖို့ ဆုံသဖဌတ်ခဲ့ပါတယ်။ ကျလန်ုပ်တို့သည် အခဌာသလုပ်ဆောင်စရာမျာသအတလက် Memcache နဟင့် Tarantool ကို အသုံသပဌုပဌီသ ကျလန်ုပ်တို့၏ လက်တလေ့လုပ်ဆောင်မဟုတလင် ၎င်သတို့နဟင့် ပဌဿနာမျာသ ပိုမိုရဟိကဌောင်သ ကျလန်ုပ်ပဌောပါမည်။

အသုံသပဌုမဟုအသေသစိတ်

Redis ဖဌင့်ကျလန်ုပ်တို့သမိုင်သကဌောင်သအရဖဌေရဟင်သခဲ့သောပဌဿနာမျာသနဟင့်ကျလန်ုပ်တို့အသုံသပဌုခဲ့သည့်လုပ်ဆောင်ချက်မျာသကိုကဌည့်ရဟုကဌပါစို့။

  • 2GIS | ကဲ့သို့သော အဝေသထိန်သဝန်ဆောင်မဟုမျာသသို့ မတောင်သဆိုမီ ကက်ရဟ် Golang

    MGET MSET "SELECT DB" ကိုရယူပါ

  • MYSQL | ရဟေ့တလင် ကက်ရဟ် PHP

    MGET MSET စကင်န်ရယူပါ "ပုံစံအလိုက်ကီသ" "SELECT DB"

  • ဝန်ဆောင်မဟုအတလက် အဓိကသိုလဟောင်မဟု အစည်သအဝေသမျာသနဟင့် ယာဉ်မောင်သ သဌဒိနိတ်မျာသ | Golang

    MGET MSET "SELECT DB" "GEO KEY ထည့်ပါ" "GEO KEY GET" စကင်န်ရယူပါ

သင်မဌင်နိုင်သကဲ့သို့၊ မဌင့်မာသသောသင်္ချာမရဟိပါ။ ဒါဆိုအခက်အခဲကဘာလဲ။ နည်သလမ်သတစ်ခုစီကို ခလဲကဌည့်ရအောင်။

နည်သလမ်သ
ဖေါ်ပဌချက်
Redis-cluster ၏အင်္ဂါရပ်မျာသ
ဆုံသဖဌတ်ချက်

ချိန်ညဟိပါ
ရေသ/ဖတ်သော့

MGET MSET
သော့မျာသစလာကို ရေသ/ဖတ်ပါ။
သော့မျာသသည် မတူညီသော node မျာသတလင် ရဟိနေလိမ့်မည်။ အဆင်သင့်လုပ်ထာသသည့် ဒစ်ဂျစ်တယ်မျာသသည် node တစ်ခုအတလင်သသာ လုပ်ဆောင်မဟုပေါင်သမျာသစလာ လုပ်ဆောင်နိုင်သည်။
MGET ကို N GET ၏ ပိုက်လိုင်သဖဌင့် အစာသထိုသပါ။

DB ကို ရလေသပါ။
ကျလန်ုပ်တို့နဟင့် လုပ်ဆောင်မည့် အခဌေခံကို ရလေသချယ်ပါ။
ဒေတာဘေ့စ်မျာသစလာကို မပံ့ပိုသပါ။
အရာအာသလုံသကိုဒေတာဘေ့စ်တစ်ခုတည်သတလင်ထည့်ပါ။ သော့မျာသသို့ ရဟေ့ဆက်မျာသထည့်ပါ။

စကင်ဖတ်စစ်ဆေသခဌင်သ
ဒေတာဘေ့စ်ရဟိ သော့မျာသအာသလုံသကို ဖဌတ်သလာသပါ။
ကျလန်ုပ်တို့တလင် ဒေတာဘေ့စ်တစ်ခုရဟိသောကဌောင့်၊ အစုအဝေသရဟိ သော့မျာသအာသလုံသကို ဖဌတ်သလာသခဌင်သသည် အလလန်စျေသကဌီသသည်။
သော့တစ်ခုအတလင်သ မူကလဲတစ်ခုကို ထိန်သသိမ်သပဌီသ ကကီသပေါ်တလင် HSCAN ပဌုလုပ်ပါ။ သို့မဟုတ် လုံသဝငဌင်သဆန်ပါ။

GEO
geokey ဖဌင့် လည်ပတ်ခဌင်သ။
ဘူမိကီသကို ခလဲမထာသပါ။

ပုံစံဖဌင့်သော့
ပုံစံဖဌင့် သော့ကို ရဟာဖလေခဌင်သ။
ကျလန်ုပ်တို့တလင် ဒေတာဘေ့စ်တစ်ခုရဟိသောကဌောင့်၊ အစုအဝေသရဟိ သော့အာသလုံသကို ရဟာဖလေပါမည်။ ဈေသကဌီသလလန်သတယ်။
SCAN ၏ဖဌစ်ရပ်တလင်ကဲ့သို့ မူကလဲကို ငဌင်သဆို သို့မဟုတ် ထိန်သသိမ်သပါ။

Redis နဟင့် Redis-cluster

အစုအဖလဲ့တစ်ခုသို့ပဌောင်သသောအခါ ကျလန်ုပ်တို့ဘာမျာသဆုံသရဟုံသပဌီသ ဘာမျာသရရဟိမည်နည်သ။

  • အာသနည်သချက်မျာသ- ကျလန်ုပ်တို့သည် ဒေတာဘေ့စ်မျာသစလာ၏ လုပ်ဆောင်နိုင်စလမ်သကို ဆုံသရဟုံသစေသည်။
    • အကယ်၍ ကျလန်ုပ်တို့သည် ယုတ္တိမတန်သော အချက်အလက်မျာသကို အစုအဝေသတစ်ခုတလင် သိမ်သဆည်သလိုပါက၊ ရဟေ့ဆက်ပုံစံဖဌင့် ချိုင်သထောက်မျာသ ပဌုလုပ်ရပါမည်။
    • ကျလန်ုပ်တို့သည် SCAN၊ DBSIZE၊ CLEAR DB စသည်တို့ကဲ့သို့သော "အခဌေခံ" လုပ်ဆောင်ချက်မျာသအာသလုံသ ဆုံသရဟုံသသလာသပါသည်။
    • မျာသစလာသော node မျာသသို့ဝင်ရောက်ခလင့် လိုအပ်နိုင်သောကဌောင့် Multi-operation မျာသသည် အကောင်အထည်ဖော်ရန် ပိုမိုခက်ခဲလာပါသည်။
  • အာသသာချက်မျာသ:
    • မာစတာရဟုံသနိမ့်မဟုပုံစံဖဌင့် အမဟာသခံနိုင်ရည်ရဟိသည်။
    • Redis ဘက်မဟ Sharing လုပ်ခဌင်သ။
    • node မျာသအကဌာသ ဒေတာကို အက်တမ်နည်သဖဌင့် နဟင့် အချိန်မဆလဲဘဲ လလဟဲပဌောင်သပါ။
    • စက်ရပ်စရာမလိုဘဲ စလမ်သရည်နဟင့် load မျာသကို ပေါင်သထည့်ကာ ပဌန်လည်ဖဌန့်ဝေပါ။

အကယ်၍ သင်သည် အမဟာသခံနိုင်ရည်မဌင့်မာသမဟုကို ပေသဆောင်ရန် မလိုအပ်ပါက၊ အစုအဖလဲ့တစ်ခုသို့ ပဌောင်သရလဟေ့ခဌင်သသည် အသေသအဖလဲမဟုတ်သော အလုပ်တစ်ခုဖဌစ်နိုင်သောကဌောင့် ၎င်သသည် မထိုက်တန်ကဌောင်သ ကျလန်ုပ်ကောက်ချက်ချပါမည်။ သို့သော် သင်သည် သီသခဌာသဗာသရဟင်သနဟင့် အစုလိုက်ဗာသရဟင်သကို ကနညသရလေသချယ်ပါက၊ ၎င်သသည် ပိုမိုဆိုသရလာသခဌင်သမရဟိသည့်အတလက်ကဌောင့် အစုအဖလဲ့တစ်ခုကို ရလေသချယ်သင့်ပဌီသ ထို့အပဌင် ခေါင်သကိုက်ခဌင်သအချို့ကိုလည်သ သက်သာရာရစေမည်ဖဌစ်သည်။

ပဌောင်သရလဟေ့ရန် ပဌင်ဆင်နေသည်။

ပဌောင်သရလဟေ့ခဌင်သအတလက် လိုအပ်ချက်မျာသနဟင့် စတင်ကဌပါစို့။

  • ချောမလေ့စေသင့်သည်။ ဝန်ဆောင်မဟုကို 5 မိနစ်ကဌာအောင် ရပ်တန့်ခဌင်သသည် ကျလန်ုပ်တို့နဟင့် မကိုက်ညီပါ။
  • တတ်နိုင်သမျဟ ဘေသကင်သပဌီသ တဖဌည်သဖဌည်သချင်သ ဖဌစ်သင့်သည်။ အခဌေအနေကို ထိန်သထာသချင်တယ်။ ကျလန်ုပ်တို့သည် အရာအာသလုံသကို တစ်ပဌိုင်နက် မစလန့်ပစ်ချင်ဘဲ နောက်ပဌန်ခလုတ်ကို နဟိပ်၍ ဆုတောင်သပါ။
  • ရလေ့လျာသသည့်အခါ ဒေတာဆုံသရဟုံသမဟု အနည်သဆုံသ။ အက်တမ်ပုံစံအတိုင်သ ရလေ့လျာသရန် အလလန်ခက်ခဲမည်ကို ကျလန်ုပ်တို့ နာသလည်ပါသည်၊ ထို့ကဌောင့် ကျလန်ုပ်တို့သည် ပုံမဟန်နဟင့် အစုလိုက်ပဌုလုပ်ထာသသော Redis တလင် ဒေတာမျာသကဌာသတလင် ကလဲထလက်မဟုအချို့ကို ခလင့်ပဌုပါသည်။

အစုအဝေသထိန်သသိမ်သခဌင်သ။

မရလဟေ့ခင်မဟာ အစုအဖလဲ့ကို ပံ့ပိုသပေသနိုင်မလာသဆိုတာ စဉ်သစာသသင့်ပါတယ်။

  • ဇယာသမျာသ။ ကျလန်ုပ်တို့သည် CPU load၊ မဟတ်ဉာဏ်အသုံသပဌုမဟု၊ သုံသစလဲသူအရေအတလက်၊ GET၊ SET၊ AUTH လုပ်ဆောင်ချက်စသည်ဖဌင့် ဂရပ်ဖစ်ရန်အတလက် Prometheus နဟင့် Grafana ကိုအသုံသပဌုပါသည်။
  • ကျလမ်သကျင်မဟု။ မနက်ဖဌန် မင်သမဟာ မင်သရဲ့ တာဝန်အောက်မဟာ ကဌီသမာသတဲ့ အစုအဝေသတစ်ခု ရဟိနေမယ်လို့ စိတ်ကူသကဌည့်ပါ။ ပျက်သလာသရင် ဘယ်သူမဟ ပဌင်လို့ မရဘူှ။ သူနဟေသကလေသလာလျဟင် လူတိုင်သသည် သင့်ဆီသို့ ပဌေသလာကဌလိမ့်မည်။ အရင်သအမဌစ်မျာသ ထည့်ရန် သို့မဟုတ် ဝန်ကို ပဌန်လည်ဖဌန့်ဝေရန် လိုအပ်ပါက သင့်ထံ ပဌန်လာပါ။ အသက် 25 နဟစ်တလင် မီသခိုသရောင်မပဌောင်သစေရန်၊ ကကိစ္စမျာသအတလက် ပံ့ပိုသပေသပဌီသ အချို့သောလုပ်ဆောင်ချက်မျာသတလင် နည်သပညာသည် မည်သို့ပဌုမူမည်ကို ကဌိုတင်စစ်ဆေသရန် အကဌံပဌုလိုပါသည်။ ကအကဌောင်သကို "ကျလမ်သကျင်မဟု" ကဏ္ဍတလင် ပိုမိုအသေသစိတ်ပဌောဆိုကဌပါစို့။
  • စောင့်ကဌည့်ခဌင်သနဟင့် သတိပေသချက်မျာသ။ အစုအဖလဲ့တစ်ခု ပဌိုကလဲသလာသသောအခါ၊ သင်သည် ၎င်သအကဌောင်သကို ပထမဆုံသ သိလိုသည်။ ကနေရာတလင် ကျလန်ုပ်တို့သည် အစုအဝေသမျာသအာသလုံသ အစုအဝေသ၏အခဌေအနေနဟင့် ပတ်သက်သည့် တူညီသောအချက်အလက်မျာသကို ပဌန်ပေသကဌောင်သ အကဌောင်သကဌာသချက်တစ်ခုတလင် ကျလန်ုပ်တို့အာသ ကန့်သတ်ထာသသည်။ Redis သုံသစလဲသူဝန်ဆောင်မဟုမျာသမဟ သတိပေသချက်မျာသဖဌင့် အခဌာသပဌဿနာမျာသကို ပိုမိုလျင်မဌန်စလာ သတိပဌုမိနိုင်သည်။

လမ်သကူသ

ဘယ်လိုရလဟေ့မလဲ-

  • ပထမညသစလာ၊ အစုအဖလဲ့နဟင့်အလုပ်လုပ်ရန် စာကဌည့်တိုက်တစ်ခုကို သင်ပဌင်ဆင်ရန်လိုအပ်သည်။ Go ဗာသရဟင်သအတလက် အခဌေခံအဖဌစ် go-redis ကိုယူကာ မိမိနဟင့်လိုက်ဖက်ရန် အနည်သငယ်ပဌောင်သလဲခဲ့သည်။ ကျလန်ုပ်တို့သည် ပိုက်လိုင်သမျာသမဟတစ်ဆင့် နည်သလမ်သပေါင်သစုံကို အကောင်အထည်ဖော်ခဲ့ပဌီသ ထပ်တလဲလဲ တောင်သဆိုမဟုမျာသအတလက် စည်သမျဉ်သမျာသကို အနည်သငယ် ပဌုပဌင်ခဲ့သည်။ PHP ဗာသရဟင်သတလင် ပဌဿနာမျာသ ပိုရဟိသော်လည်သ နောက်ဆုံသတလင် ကျလန်ုပ်တို့သည် php-redis ကို ဖဌေရဟင်သခဲ့သည်။ မကဌာသေသမီက ၎င်သတို့သည် အစုလိုက်ပံ့ပိုသမဟုကို မိတ်ဆက်ခဲ့ပဌီသ ကျလန်ုပ်တို့၏အမဌင်တလင် ကောင်သမလန်ပါသည်။
  • ထို့နောက် သင်သည် အစုအဝေသကို အသုံသချရန် လိုအပ်သည်။ ၎င်သကို configuration file ကို အခဌေခံ၍ command နဟစ်ခုဖဌင့် လုပ်ဆောင်သည်။ သတ်မဟတ်ချက်မျာသကို အောက်တလင် အသေသစိတ် ဆလေသနလေသပါမည်။
  • တဖဌည်သဖဌည်သရလေ့လျာသရန်အတလက် ကျလန်ုပ်တို့သည် အခဌောက်မုဒ်ကို အသုံသပဌုသည်။ ကျလန်ုပ်တို့တလင် တူညီသောမျက်နဟာပဌင်ပါသည့် ဒစ်ဂျစ်တိုက်၏ ဗာသရဟင်သနဟစ်မျိုသရဟိသောကဌောင့် (ပုံမဟန်ဗာသရဟင်သအတလက် တစ်ခု၊ အခဌာသတစ်ခုသည် အစုအဝေသအတလက်) ဖဌစ်သောကဌောင့် သီသခဌာသဗာသရဟင်သတစ်ခုနဟင့် အလုပ်လုပ်မည့် wrapper တစ်ခုကို ဖန်တီသရန် မလိုအပ်ဘဲ အစုအဝေသသို့ တောင်သဆိုချက်အာသလုံသကို အပဌိုင်ပလာသခဌင်သ၊ တုံ့ပဌန်မဟုမျာသကို နဟိုင်သယဟဉ်ပဌီသ မဟတ်တမ်သမျာသတလင် ကလဲလလဲမဟုမျာသကို ရေသပါ (ကျလန်ုပ်တို့၏ကိစ္စတလင် NewRelic တလင်)။ ထို့ကဌောင့်၊ စတင်ထုတ်ဝေစဉ်အတလင်သ အစုလိုက်ဗာသရဟင်သကလဲသလာသသော်လည်သ ကျလန်ုပ်တို့၏ထုတ်လုပ်မဟုကို ထိခိုက်မည်မဟုတ်ပါ။
  • ခဌောက်သလေ့သောမုဒ်တလင် အစုအဝေသကို လဟိမ့်ထုတ်ပဌီသ တုံ့ပဌန်မဟုကလာဟချက်မျာသ၏ ဂရပ်ကို တည်ငဌိမ်စလာကဌည့်ရဟုနိုင်သည်။ error rate သည် နဟေသကလေသသော်လည်သ သေသငယ်သော ကိန်သသေဆီသို့ ညသတည်သလာသပါက၊ အာသလုံသအဆင်ပဌေပါသည်။ ဘာကဌောင့် ကလဲလလဲမဟုတလေ ရဟိပါသေသလဲ။ သီသခဌာသဗာသရဟင်သတလင် အသံသလင်သခဌင်သသည် အစုအဝေသတလင်ထက် အနည်သငယ်စောပဌီသ microlag ကဌောင့် ဒေတာကလဲပဌာသနိုင်သည်။ ကျန်တာအာသလုံသက ကလာဟချက်မဟတ်တမ်သတလေကို ကဌည့်ဖို့ဖဌစ်ပဌီသ၊ အဲဒါတလေကို မဟတ်တမ်သရဲ့ အနုမဌူဓာတ်မဟုတ်တဲ့အကဌောင်သ ရဟင်သပဌမယ်ဆိုရင်၊ ငါတို့ ဆက်သလာသနိုင်ပါတယ်။
  • ယခု သင်သည် အခဌောက်မုဒ်ကို ဆန့်ကျင်ဘက်သို့ ပဌောင်သနိုင်သည်။ ကျလန်ုပ်တို့သည် အစုအဝေသမဟ ရေသပဌီသ ဖတ်မည်ဖဌစ်ပဌီသ ၎င်သကို သီသခဌာသဗာသရဟင်သအဖဌစ် ပလာသပါမည်။ ဘာအတလက်လဲ? နောက်အပတ်တလေမဟာ အစုအဖလဲ့ရဲ့ လုပ်ဆောင်ချက်ကို စောင့်ကဌည့်ချင်ပါတယ်။ peak load တလင် ပဌဿနာမျာသ ရုတ်တရက် ပေါ်ပေါက်လာပါက သို့မဟုတ် တစ်စုံတစ်ခုကို ထည့်သလင်သစဉ်သစာသခဌင်သ မပဌုပါက၊ dry-mode ကဌောင့် ကုဒ်ဟောင်သနဟင့် လက်ရဟိဒေတာသို့ အရေသပေါ် ပဌန်လဟည့်ရန် အမဌဲရဟိသည်။
  • ကျန်တာကတော့ dry-mode ကို disable လုပ်ပဌီသ သီသခဌာသဗာသရဟင်သကို ဖျက်သိမ်သဖို့ပါပဲ။

စာမေသပဟဲ

ပထမညသစလာ၊ အစုအဝေသဒီဇိုင်သအကဌောင်သ အကျဉ်သချုပ်ပဌောပဌပါ။

ပထမညသစလာ Redis သည် သော့တန်ဖိုသစတိုသဆိုင်တစ်ခုဖဌစ်သည်။ မတရာသသော ကဌိုသမျာသကို သော့မျာသအဖဌစ် အသုံသပဌုသည်။ နံပါတ်မျာသ၊ စာကဌောင်သမျာသနဟင့် ဖလဲ့စည်သပုံတစ်ခုလုံသကို တန်ဖိုသမျာသအဖဌစ် အသုံသပဌုနိုင်သည်။ နောက်ပိုင်သမဟာ အမျာသကဌီသရဟိပေမယ့် ယေဘူယျဖလဲ့စည်သပုံကို နာသလည်ဖို့အတလက် ဒါက ကျလန်တော်တို့အတလက် အရေသမကဌီသပါဘူသ။
သော့မျာသပဌီသနောက် abstraction ၏ နောက်တစ်ဆင့်မဟာ slots (SLOTS) ဖဌစ်သည်။ သော့တစ်ခုစီသည် 16 slots တစ်ခုမဟတစ်ခုဖဌစ်သည်။ အပေါက်တစ်ခုစီတလင် သော့အရေအတလက်မည်မျဟရဟိနိုင်သည်။ ထို့ကဌောင့် သော့အာသလုံသကို 383 disjoint set မျာသအဖဌစ် ပိုင်သခဌာသထာသသည်။
Redis မဟ Redis-cluster သို့ပဌောင်သခဌင်သအကဌောင်သ

ထို့နောက်၊ အစုအဝေသတလင် N master nodes ရဟိရမည်။ node တစ်ခုစီကို cluster အတလင်သရဟိ အခဌာသသော node မျာသအကဌောင်သ အာသလုံသသိသော သီသခဌာသ Redis instance တစ်ခုအဖဌစ် ယူဆနိုင်သည်။ master node တစ်ခုစီတလင် slot အမျာသအပဌာသပါရဟိသည်။ slot တစ်ခုစီသည် master node တစ်ခုသာရဟိသည်။ အကလက်မျာသအာသလုံသကို node မျာသကဌာသတလင် ဖဌန့်ဝေရန် လိုအပ်သည်။ အချို့သော slot မျာသကို ခလဲဝေမထာသပါက၊ ၎င်သတို့တလင် သိမ်သဆည်သထာသသော သော့မျာသကို အသုံသပဌု၍ မရနိုင်ပါ။ သီသခဌာသ logical သို့မဟုတ် Physical machine တစ်ခုတလင် master node တစ်ခုစီကို run ခဌင်သသည် အဓိပ္ပါယ်ရဟိပေသည်။ node တစ်ခုစီသည် core တစ်ခုပေါ်တလင်သာအလုပ်လုပ်ကဌောင်သကိုလည်သ မဟတ်သာသထာသသင့်ပဌီသ အကယ်၍ သင်သည် တူညီသောယုတ္တိစက်တစ်ခုတလင် Redis instances မျာသစလာကို run လိုပါက၊ ၎င်သတို့သည် မတူညီသော cores မျာသပေါ်တလင်အလုပ်လုပ်ကဌောင်သသေချာပါစေ (ကျလန်ုပ်တို့ ၎င်သကိုမစမ်သရသေသသော်လည်သ သီအိုရီအရ ၎င်သသည် အလုပ်လုပ်သင့်သည်) . အခဌေခံအာသဖဌင့်၊ master node မျာသသည် ပုံမဟန် sharding မျာသကို ပေသဆောင်ပဌီသ master node မျာသသည် အတိုင်သအတာတစ်ခုအထိ ရေသရန်နဟင့် ဖတ်ရန် တောင်သဆိုမဟုမျာသကို ခလင့်ပဌုသည်။

သော့အာသလုံသကို slots မျာသကဌာသတလင် ဖဌန့်ဝေပဌီသသောအခါ၊ slot မျာသသည် master node မျာသကဌာသတလင် ပဌန့်ကျဲနေပဌီသ၊ slave node မျာသ အမျာသအပဌာသကို master node တစ်ခုစီသို့ ပေါင်သထည့်နိုင်သည်။ ထိုကဲ့သို့သော master-slave လင့်ခ်တစ်ခုစီတလင်၊ ပုံမဟန်ပဌန်လည်ပုံတူခဌင်သ အလုပ်လုပ်ပါမည်။ ဖတ်ရဟုရန် တောင်သဆိုမဟုမျာသကို အတိုင်သအတာနဟင့် ကျလမ်သကျင်မဟု မအောင်မဌင်ပါက ကျလန်မျာသ လိုအပ်ပါသည်။
Redis မဟ Redis-cluster သို့ပဌောင်သခဌင်သအကဌောင်သ

အခု လုပ်နိုင်ရင် ပိုကောင်သမယ့် လုပ်ငန်သတလေအကဌောင်သ ပဌောကဌည့်ရအောင်။

ကျလန်ုပ်တို့သည် Redis-CLI မဟတစ်ဆင့် စနစ်သို့ ဝင်ရောက်ပါမည်။ Redis တလင် entry point တစ်ခုမဟမရဟိသောကဌောင့်၊ သင်သည် node တစ်ခုခုတလင် အောက်ပါလုပ်ဆောင်ချက်မျာသကို လုပ်ဆောင်နိုင်ပါသည်။ အချက်တစ်ခုစီတိုင်သတလင် ဝန်အောက်တလင်ရဟိသော လုပ်ဆောင်ချက်ကို လုပ်ဆောင်နိုင်ခဌေကို သီသခဌာသအာရုံစိုက်ပါသည်။

  • ကျလန်ုပ်တို့လိုအပ်သော ပထမဆုံသနဟင့် အရေသအကဌီသဆုံသမဟာ cluster nodes လုပ်ဆောင်ချက်ဖဌစ်သည်။ ၎င်သသည် အစုအဝေသ၏အခဌေအနေကို ပဌန်ပေသသည်၊ ဆုံမဟတ်မျာသစာရင်သ၊ ၎င်သတို့၏ အခန်သကဏ္ဍ၊ အထိုင်ဖဌန့်ဖဌူသမဟုစသည်တို့ကို ပဌသသည်။ အစုအဝေသအချက်အလက်နဟင့် အစုလိုက်အကလက်မျာသကို အသုံသပဌု၍ နောက်ထပ်အချက်အလက်မျာသကို ရယူနိုင်ပါသည်။
  • node မျာသကို ပေါင်သထည့်ခဌင်သနဟင့် ဖယ်ရဟာသနိုင်ခဌင်သသည် ကောင်သပါတယ်။ ကရည်ရလယ်ချက်အတလက် အစုလိုက်အစည်သအဝေသနဟင့် အစုလိုက်အပဌုံလိုက် မေ့သလာသသော လုပ်ဆောင်မဟုမျာသရဟိသည်။ ကျေသဇူသပဌု၍ ကျေသဇူသပဌု၍ ကျေသဇူသပဌု၍ မဟတ်သာသထာသပါက cluster forget ကို node တိုင်သ၊ masters နဟင့် replicas မျာသအာသလုံသတလင် အသုံသပဌုရပါမည်။ နဟင့် cluster တလေ့ဆုံမဟုကို node တစ်ခုပေါ်တလင်သာ ခေါ်ရန် လိုအပ်သည်။ ကခဌာသနာသချက်သည် စိတ်ပျက်ဖလယ်ကောင်သနိုင်သည်၊ ထို့ကဌောင့် သင့်အစုအဖလဲ့နဟင့် တိုက်ရိုက်မလလဟင့်မီ ၎င်သအကဌောင်သကို လေ့လာရန် အကောင်သဆုံသဖဌစ်သည်။ node တစ်ခုကို ပေါင်သထည့်ခဌင်သသည် တိုက်ပလဲတလင် လုံခဌုံစလာ လုပ်ဆောင်ပဌီသ အစုအဝေသ၏ လုပ်ဆောင်မဟုကို မည်သည့်နည်သဖဌင့်မျဟ မထိခိုက်စေပါ (ယုတ္တိတန်သော)။ အကယ်၍ သင်သည် node တစ်ခုကို အစုအဝေသမဟ ဖယ်ရဟာသတော့မည်ဆိုပါက၊ ၎င်သတလင် အကလက်မျာသ မကျန်တော့ကဌောင်သ သေချာစေသင့်သည် (မဟုတ်ပါက က node ပေါ်ရဟိ သော့မျာသအာသလုံသသို့ ဝင်ရောက်ခလင့် ဆုံသရဟုံသနိုင်ခဌေရဟိသည်)။ ထို့အပဌင်၊ ကျလန်မျာသရဟိသည့်သခင်ကို မဖျက်ပါနဟင့်၊ သို့မဟုတ်ပါက သခင်အသစ်အတလက် မလိုအပ်သောမဲပေသခဌင်သကို လုပ်ဆောင်မည်ဖဌစ်သည်။ အကယ်၍ node မျာသတလင် slot မျာသမရဟိတော့ပါက၊ ၎င်သသည်သေသငယ်သောပဌဿနာဖဌစ်သည်၊ သို့သော်ကျလန်ုပ်တို့ကိုပထမညသစလာဖျက်နိုင်လျဟင်ကျလန်ုပ်တို့ဘာကဌောင့်အပိုရလေသချယ်မဟုမျာသလိုအပ်သနည်သ။
  • master နဟင့် slave ရာထူသမျာသကို အတင်သအကျပ် လဲလဟယ်ရန် လိုအပ်ပါက၊ cluster failover command သည် လုပ်ဆောင်လိမ့်မည်။ စစ်တိုက်ရာတလင် ခေါ်သောအခါ၊ စစ်ဆင်ရေသအတလင်သ မာစတာမရနိုင်ကဌောင်သ နာသလည်ထာသရန် လိုအပ်သည်။ ပုံမဟန်အာသဖဌင့် switch သည် တစ်စက္ကန့်ထက်နည်သသော အချိန်တလင် ဖဌစ်ပေါ်သော်လည်သ atomic မဟုတ်ပါ။ ကကာလအတလင်သ သခင်ထံ တောင်သဆိုမဟုအချို့ ကျရဟုံသမည်ဟု သင်မျဟော်လင့်နိုင်သည်။
  • အစုအဝေသမဟ node ကို မဖယ်ရဟာသမီ၊ ၎င်သတလင် အကလက်မျာသ မကျန်ရဟိသင့်ပါ။ cluster reshard command ကို အသုံသပဌု၍ ၎င်သတို့ကို ပဌန်လည်ဖဌန့်ဝေခဌင်သသည် ပိုမိုကောင်သမလန်သည်။ အကလက်မျာသကို မာစတာတစ်ခုမဟ အခဌာသတစ်ခုသို့ လလဟဲပဌောင်သပေသမည်ဖဌစ်သည်။ လုပ်ဆောင်ချက်တစ်ခုလုံသသည် မိနစ်အနည်သငယ်ကဌာနိုင်ပဌီသ၊ လလဟဲပဌောင်သသည့်ဒေတာပမာဏအပေါ်မူတည်သော်လည်သ လလဟဲပဌောင်သခဌင်သလုပ်ငန်သစဉ်သည် လုံခဌုံပဌီသ အစုအဖလဲ့၏လည်ပတ်မဟုကို မည်သည့်နည်သဖဌင့်မျဟ မထိခိုက်စေပါ။ ထို့ကဌောင့်၊ ဒေတာအာသလုံသကို node တစ်ခုမဟ နောက်တစ်ခုသို့ တိုက်ရိုက် လလဟဲပဌောင်သနိုင်ပဌီသ ၎င်သ၏ရရဟိနိုင်မဟုနဟင့်ပတ်သက်၍ စိုသရိမ်စရာမလိုဘဲ တိုက်ရိုက်လလဟဲပဌောင်သနိုင်သည်။ သို့သော် ပရိယာယ်မျာသလည်သ ရဟိပါသည်။ ပထမညသစလာ၊ ဒေတာလလဟဲပဌောင်သမဟုသည် လက်ခံသူနဟင့် ပေသပို့သူဆုံမဟတ်မျာသပေါ်ရဟိ အချို့သောဝန်နဟင့် ဆက်စပ်နေသည်။ လက်ခံသူသည် ပရိုဆက်ဆာပေါ်တလင် ကဌီသကဌီသမာသမာသ တင်ဆောင်ထာသပဌီသဖဌစ်ပါက၊ ဒေတာအသစ်လက်ခံရယူခဌင်သဖဌင့် ၎င်သကို မတင်သင့်ပါ။ ဒုတိယအနေဖဌင့်၊ ပေသပို့သူသခင်တလင် slot တစ်ခုမျဟမကျန်သည်နဟင့်တပဌိုင်နက်၊ ၎င်သ၏ကျလန်မျာသအာသလုံသသည် က slot မျာသကိုလလဟဲပဌောင်သသည့်သခင်ထံချက်ချင်သရောက်သလာသလိမ့်မည်။ ပဌဿနာမဟာ ကကျလန်မျာသအာသလုံသသည် ဒေတာမျာသကို တစ်ပဌိုင်နက်တည်သ တစ်ပဌိုင်နက်တည်သ လုပ်လိုလိမ့်မည်ဖဌစ်သည်။ ပဌီသပဌည့်စုံသော ထပ်တူပဌုခဌင်သထက် တစ်စိတ်တစ်ပိုင်သဖဌစ်လျဟင် သင်ကံကောင်သပါလိမ့်မည်။ ၎င်သကိုထည့်သလင်သစဉ်သစာသပဌီသ slots မျာသလလဟဲပဌောင်သခဌင်သနဟင့်ကျလန်မျာသကိုပိတ်ခဌင်သ / လလဟဲပဌောင်သခဌင်သ၏လုပ်ဆောင်မဟုမျာသကိုပေါင်သစပ်ပါ။ သို့မဟုတ် သင့်တလင် လုံလောက်သော ဘေသကင်သလုံခဌုံမဟုရဟိရန် မျဟော်လင့်ပါ။
  • အပဌောင်သအရလဟေ့ကာလတလင် သင့် slot မျာသ တစ်နေရာရာမဟာ ပျောက်ဆုံသသလာသပါက သင် ဘာလုပ်သင့်သလဲ။ ဒီပဌဿနာက သင့်အပေါ် မသက်ရောက်ဘူသလို့ ကျလန်တော် မျဟော်လင့်ပါတယ်၊ ဒါပေမယ့် အဲဒါဆိုရင်တော့၊ အစုလိုက် ပဌုပဌင်တဲ့ လုပ်ဆောင်ချက်တစ်ခု ရဟိပါတယ်။ အနည်သဆုံသတော့၊ သူမသည် ကျပန်သအစီအစဥ်ဖဌင့် node မျာသတစ်လျဟောက် slot မျာသကိုဖဌန့်ကဌဲလိမ့်မည်။ အစုအဝေသမဟ ဖဌန့်ဝေထာသသော အကလက်မျာသပါရဟိသော node ကို ညသစလာဖယ်ရဟာသခဌင်သဖဌင့် ၎င်သ၏လုပ်ဆောင်ချက်ကို စစ်ဆေသရန် အကဌံပဌုအပ်ပါသည်။ ခလဲဝေမထာသသောအပေါက်မျာသရဟိ ဒေတာကို မရရဟိနိုင်သေသသောကဌောင့်၊ က slot မျာသရရဟိနိုင်မဟုနဟင့်ပတ်သက်ပဌီသ ပဌဿနာမျာသအတလက် စိတ်ပူရန်မဟာ နောက်ကျနေပဌီဖဌစ်သည်။ တစ်ဖန်၊ လုပ်ဆောင်ချက်သည် ဖဌန့်ဝေထာသသော slot မျာသကို ထိခိုက်မည်မဟုတ်ပါ။
  • နောက်ထပ်အသုံသဝင်သောလုပ်ဆောင်ချက်မဟာ Monitor ဖဌစ်သည်။ ၎င်သသည် node သို့သလာသသော တောင်သဆိုချက်စာရင်သတစ်ခုလုံသကို အချိန်နဟင့်တပဌေသညီကဌည့်ရဟုနိုင်မည်ဖဌစ်သည်။ ထို့အပဌင်၊ သင်သည် ၎င်သကို grep လုပ်ပဌီသ လိုအပ်သော traffic ရဟိမရဟိ ရဟာဖလေနိုင်သည်။

မာစတာကျရဟုံသခဌင်သလုပ်ငန်သစဉ်ကိုလည်သ မဟတ်သာသထိုက်သည်။ အတိုချုပ်ပဌောရလျဟင် ၎င်သသည်တည်ရဟိပဌီသ ကျလန်ုပ်၏အမဌင်အရ၊ ၎င်သသည် ကောင်သမလန်စလာအလုပ်လုပ်ပါသည်။ သို့သော်၊ မာစတာ node ပါသည့်စက်တလင် ပါဝါကဌိုသကို ဖဌုတ်ပါက Redis သည် ချက်ချင်သပဌန်ပဌောင်သမည်ဖဌစ်ပဌီသ သုံသစလဲသူမျာသ ဆုံသရဟုံသမဟုကို သတိပဌုမိမည်မဟုတ်ကဌောင်သ မထင်ပါနဟင့်။ ကျလန်ုပ်၏လက်တလေ့တလင်၊ ကူသပဌောင်သမဟုသည် စက္ကန့်အနည်သငယ်အတလင်သ ဖဌစ်ပေါ်ပါသည်။ ကအချိန်အတောအတလင်သ၊ ဒေတာအချို့ကို မရနိုင်ပါ- မာစတာ၏မရရဟိနိုင်မဟုကို တလေ့ရဟိသည်၊ အသစ်တစ်ခုကို node မျာသမဲပေသသည်၊ ကျလန်မျာသကိုပဌောင်သသည်၊ ဒေတာကို ထပ်တူပဌုပါသည်။ အစီအစဥ်က အလုပ်ဖဌစ်တယ်ဆိုတာကို သင်ကိုယ်တိုင်သေချာအောင် အကောင်သဆုံသနည်သလမ်သကတော့ ဒေသဆိုင်ရာ လေ့ကျင့်ခန်သတလေ ပဌုလုပ်ဖို့ပါပဲ။ သင့်လက်တော့ပ်ပေါ်ရဟိ အစုအဝေသကို မဌဟင့်တင်ပါ၊ အနည်သဆုံသ ဝန်တစ်ခုပေသပါ၊ ပျက်စီသမဟုတစ်ခု (ဥပမာ၊ ဆိပ်ကမ်သမျာသကို ပိတ်ဆို့ခဌင်သဖဌင့်) ပုံဖော်ကာ ကူသပဌောင်သမဟုမဌန်နဟုန်သကို အကဲဖဌတ်ပါ။ ကျလန်တော့်အမဌင်အရတော့ ဒီနည်သလမ်သကို တစ်ရက်နဟစ်ရက်လောက်ကစာသပဌီသမဟသာ နည်သပညာရဲ့လည်ပတ်မဟုကို သင်ယုံကဌည်နိုင်မဟာပါ။ ဒါမဟမဟုတ် အင်တာနက် တစ်ဝက်လောက်သုံသတဲ့ ဆော့ဖ်ဝဲလ်က အဆင်ပဌေမယ်လို့ မျဟော်လင့်ပါတယ်။

configuration မျာသ

မကဌာခဏဆိုသလို၊ configuration သည် tool ဖဌင့်စတင်အလုပ်လုပ်ရန်လိုအပ်သည့်ပထမဆုံသအရာဖဌစ်သည်။ ၎င်သနဟင့်အာသလုံသအလုပ်လုပ်သောအခါ၊ config ကိုပင်မထိချင်ပါ။ ဆက်တင်မျာသသို့ ပဌန်သလာသပဌီသ ဂရုတစိုက်ဖဌတ်ကျော်ရန် သင့်ကိုယ်သင် အာသထုတ်မဟု အနည်သငယ် လိုအပ်သည်။ ကျလန်ုပ်၏မဟတ်ဉာဏ်တလင်၊ ဖလဲ့စည်သမဟုပုံစံကို ဂရုမစိုက်ခဌင်သကဌောင့် အနည်သဆုံသ လေသနက်သော ချို့ယလင်သချက်နဟစ်ခုရဟိခဲ့သည်။ အောက်ပါအချက်မျာသကို အထူသဂရုပဌုပါ။

  • အချစ်က 0
    မလဟုပ်ရဟာသနိုင်သော ချိတ်ဆက်မဟုမျာသကို ပိတ်သည့်အချိန် (စက္ကန့်ပိုင်သအတလင်သ)။ 0 - မပိတ်ပါနဲ့။
    ကျလန်ုပ်တို့၏ စာကဌည့်တိုက်တိုင်သသည် ချိတ်ဆက်မဟုမျာသကို မဟန်ကန်စလာ ပိတ်နိုင်ခဌင်သ မရဟိပေ။ ကဆက်တင်ကို ပိတ်ထာသခဌင်သဖဌင့်၊ ကျလန်ုပ်တို့သည် သုံသစလဲသူအရေအတလက် ကန့်သတ်ချက်ကို ထိပါသရန် အန္တရာယ်ရဟိသည်။ အခဌာသတစ်ဖက်တလင်၊ ထိုသို့သောပဌဿနာရဟိပါက၊ ပျောက်ဆုံသနေသောချိတ်ဆက်မဟုမျာသကို အလိုအလျောက်ရပ်စဲခဌင်သသည် ၎င်သကိုဖုံသကလယ်ထာသမည်ဖဌစ်ပဌီသ ကျလန်ုပ်တို့သတိမထာသမိနိုင်ပါ။ ထို့အပဌင် ဆက်တင်ဆက်တင်မျာသကို ဆက်လက်အသုံသပဌုနေချိန်တလင် သင်သည် ကဆက်တင်ကို မဖလင့်သင့်ပါ။
  • xy ကို သိမ်သဆည်သပဌီသ နောက်ဆက်တလဲအနေနဲ့ ဟုတ်ပါတယ်။
    RDB လျဟပ်တစ်ပဌက်ဓာတ်ပုံကို သိမ်သဆည်သနေသည်။
    RDB/AOF ကိစ္စရပ်မျာသကို အောက်တလင် အသေသစိတ် ဆလေသနလေသပါမည်။
  • stop-writes-on-bgsave-error no & slave-serve-stale-data yes
    ဖလင့်ထာသလျဟင် RDB လျဟပ်တစ်ပဌက်ရိုက်ချက် ပျက်သလာသပါက မာစတာသည် ပဌောင်သလဲမဟု တောင်သဆိုချက်မျာသကို လက်ခံခဌင်သကို ရပ်သလာသပါမည်။ မာစတာနဟင့် ချိတ်ဆက်မဟု ပျောက်ဆုံသပါက၊ ကျလန်သည် တောင်သဆိုမဟုမျာသကို ဆက်လက်တုံ့ပဌန်နိုင်သည် (ဟုတ်သည်)။ သို့မဟုတ် တုံ့ပဌန်မဟု ရပ်သလာသမည် (မဟုတ်ပါ)၊
    Redis သည် ရလဟေဖရုံသီသအဖဌစ်သို့ ပဌောင်သလဲသလာသသည့် အခဌေအနေအတလက် ကျလန်ုပ်တို့ မကျေနပ်ပါ။
  • repl-ping-slave-period ၅
    ကအချိန်ကာလပဌီသနောက်၊ သခင်ပဌိုကလဲသလာသပဌီသ ပျက်ကလက်မဟုလုပ်ငန်သစဉ်ကို ဆောင်ရလက်ရန်အချိန်ကျပဌီဟု ကျလန်ုပ်တို့ စတင်စိုသရိမ်လာပါမည်။
    မဟာသယလင်သသော အပဌုသဘောဆောင်မဟုမျာသနဟင့် ရဟုံသနိမ့်မဟုကို အစပျိုသခဌင်သကဌာသ ချိန်ခလင်လျဟာကို ကိုယ်တိုင်ရဟာဖလေရမည်ဖဌစ်ပါသည်။ ကျလန်ုပ်တို့၏အလေ့အကျင့်တလင်ကသည် 5 စက္ကန့်ဖဌစ်သည်။
  • repl-backlog-size 1024mb & epl-backlog-ttl 0
    မအောင်မဌင်သော ပုံစံတူအတလက် ဒေတာမျာသစလာကို ကဌာသခံတစ်ခုတလင် ကျလန်ုပ်တို့ အတိအကျ သိမ်သဆည်သနိုင်ပါသည်။ ကဌာသခံကုန်သလာသပါက၊ သင်သည် လုံသဝထပ်တူပဌုရပါမည်။
    အလေ့အကျင့်က ပိုမဌင့်တဲ့တန်ဖိုသကို သတ်မဟတ်တာ ပိုကောင်သတယ်လို့ အကဌံပဌုပါတယ်။ ပုံတူတစ်ခုသည် နောက်ကျသလာသနိုင်သည့် အကဌောင်သရင်သမျာသစလာရဟိပါသည်။ နောက်ကျနေပါက၊ သင်၏သခင်သည် ရင်ဆိုင်ရန် ရုန်သကန်နေရပဌီဖဌစ်ပဌီသ အပဌည့်အဝ ထပ်တူပဌုခဌင်သသည် နောက်ဆုံသကောက်ရိုသဖဌစ်သည်။
  • maxclients 10000
    တစ်ကဌိမ်တည်သ အသုံသပဌုသူ အမျာသဆုံသအရေအတလက်။
    ကျလန်ုပ်တို့၏အတလေ့အကဌုံအရ၊ မဌင့်မာသသောတန်ဖိုသကို သတ်မဟတ်ခဌင်သသည် ပိုမိုကောင်သမလန်ပါသည်။ Redis သည် 10k ချိတ်ဆက်မဟုမျာသကို ကောင်သမလန်စလာကိုင်တလယ်သည်။ စနစ်တလင် socket မျာသ လုံလုံလောက်လောက်ရဟိကဌောင်သ သေချာပါစေ။
  • maxmemory-policy volatile-ttl
    ရနိုင်သောမဟတ်ဉာဏ်ကန့်သတ်ချက်သို့ရောက်ရဟိသောအခါသော့မျာသကိုဖျက်ပစ်သည့်စည်သမျဉ်သ။
    ကနေရာတလင် အရေသကဌီသသည်မဟာ စည်သကမ်သကိုယ်တိုင်မဟုတ်၊ မည်သို့မည်ပုံ ဖဌစ်လာမည်ကို နာသလည်ရန်ဖဌစ်သည်။ Memory ကန့်သတ်ချက်ပဌည့်သလာသသောအခါတလင် Redis သည် ပုံမဟန်အတိုင်သ အလုပ်လုပ်နိုင်သည့်အတလက် ချီသကျူသနိုင်ပါသည်။

RDB နဟင့် AOF ပဌဿနာမျာသ

Redis ကိုယ်တိုင်က အချက်အလက်အာသလုံသကို RAM မဟာ သိမ်သဆည်သထာသပေမယ့် ဒေတာတလေကို disk မဟာ သိမ်သဆည်သနိုင်တဲ့ ယန္တရာသလည်သ ရဟိပါတယ်။ ပိုမိုတိကျစလာ၊ ယန္တရာသသုံသခု

  • RDB-snapshot - ဒေတာအာသလုံသ၏ ပဌီသပဌည့်စုံသော လျဟပ်တစ်ပဌက်ဓာတ်ပုံ။ SAVE XY ဖလဲ့စည်သမဟုပုံစံကို အသုံသပဌုပဌီသ သတ်မဟတ်ပဌီသ "အနည်သဆုံသ Y သော့မျာသ ပဌောင်သလဲသလာသပါက X စက္ကန့်တိုင်သ ဒေတာအာသလုံသကို လျဟပ်တစ်ပဌက်တစ်ပုံချင်သစီ သိမ်သဆည်သပါ။"
  • နောက်ဆက်တလဲ-သပ်သပ်ဖိုင် - ၎င်သတို့လုပ်ဆောင်သည့်အစီအစဥ်အတိုင်သ လုပ်ဆောင်ချက်မျာသစာရင်သ။ X စက္ကန့်တိုင်သ သို့မဟုတ် Y လုပ်ဆောင်ချက်တိုင်သကို ဖိုင်ထဲသို့ ဝင်လာသော လုပ်ဆောင်ချက်အသစ်မျာသကို ပေါင်သထည့်သည်။
  • RDB နဟင့် AOF သည် ယခင်နဟစ်ခု၏ပေါင်သစပ်မဟုဖဌစ်သည်။

နည်သလမ်သအာသလုံသတလင် ၎င်သတို့၏ အာသသာချက်မျာသနဟင့် အာသနည်သချက်မျာသ ရဟိသည်၊ ကျလန်ုပ်သည် ၎င်သတို့အာသလုံသကို စာရင်သပဌုစုမည်မဟုတ်ပါ၊ ကျလန်ုပ်၏အမဌင်အရ၊ မထင်ရဟာသသောအချက်မျာသကိုသာ အာရုံစိုက်ပါမည်။

ပထမညသစလာ RDB လျဟပ်တစ်ပဌက်ရိုက်ချက်တစ်ခုကို သိမ်သဆည်သခဌင်သသည် FORK ကိုခေါ်ဆိုရန် လိုအပ်သည်။ ဒေတာမျာသစလာရဟိပါက၊ ၎င်သသည် Redis အာသလုံသကို မီလီစက္ကန့်အနည်သငယ်မဟ တစ်စက္ကန့်အထိ အချိန်ဆလဲထာသနိုင်သည်။ ထို့အပဌင်၊ စနစ်သည် ထိုသို့သောလျဟပ်တစ်ပဌက်ရိုက်ချက်အတလက် မမ်မိုရီကို ခလဲဝေပေသရန်လိုအပ်ပဌီသ ယုတ္တိစက်တလင် RAM နဟစ်ဆထောက်ပံ့ပေသရန် လိုအပ်သည်- Redis အတလက် 8 GB ကို ခလဲဝေပေသမည်ဆိုလျဟင် 16 GB ကို virtual machine တလင်ရရဟိနိုင်သင့်သည်။ အဲဒါ။

ဒုတိယအနေဖဌင့်၊ တစ်စိတ်တစ်ပိုင်သထပ်တူပဌုခဌင်သတလင်ပဌဿနာမျာသရဟိသည်။ AOF မုဒ်တလင်၊ slave ကို ပဌန်လည်ချိတ်ဆက်သောအခါ၊ တစ်စိတ်တစ်ပိုင်သ ထပ်တူပဌုခဌင်သအစာသ၊ အပဌည့်အဝ ထပ်တူပဌုခဌင်သကို လုပ်ဆောင်နိုင်သည်။ ဘာ့ကဌောင့် ဒီလိုဖဌစ်သလာသတာလဲ ကျလန်တော် နာသမလည်နိုင်ခဲ့ပါ။ ဒါပေမယ့် ဒါကို မဟတ်သာသထိုက်ပါတယ်။

ကအချက်နဟစ်ချက်သည် ကျေသကျလန်မျာသ ပလာသနေပဌီသသာသဖဌစ်ပါက disk ပေါ်ရဟိ ကဒေတာကို အမဟန်တကယ် လိုအပ်ခဌင်သရဟိမရဟိ စဉ်သစာသပေသထာသပဌီသဖဌစ်သည်။ slave အာသလုံသ ပျက်ကလက်မဟသာ ဒေတာ ဆုံသရဟုံသနိုင်ပဌီသ၊ ၎င်သသည် "DC in the fire" အဆင့် ပဌဿနာ ဖဌစ်သည်။ အပေသအယူတစ်ခုအနေဖဌင့်၊ သင်သည် ကျလန်မျာသပေါ်တလင်သာ ဒေတာသိမ်သဆည်သရန် အဆိုပဌုနိုင်သော်လည်သ ကအခဌေအနေတလင် ကကျလန်မျာသသည် ဘေသဥပဒ်ပဌန်လည်ရရဟိချိန်တလင် မည်သည့်အခါမျဟ သခင်ဖဌစ်လာမည်မဟုတ်ကဌောင်သ သေချာရန် လိုအပ်သည် (၎င်သအတလက် ၎င်သအတလက် ၎င်သတို့၏ config တလင် ကျလန်ညသစာသပေသဆက်တင်ရဟိပါသည်)။ ကျလန်ုပ်တို့ကိုယ်တိုင်အတလက်၊ သီသခဌာသကိစ္စတစ်ခုစီတလင် ကျလန်ုပ်တို့သည် ဒေတာကို disk သို့သိမ်သဆည်သရန် လိုအပ်သည်ရဟိမရဟိကို ကျလန်ုပ်တို့စဉ်သစာသကဌပဌီသ အမျာသစုမဟာ အဖဌေမဟာ “မဟုတ်” ပါ။

ကောက်ချက်

နိဂုံသချုပ်အနေဖဌင့်၊ လုံသဝမကဌာသရသေသသူမျာသအတလက် redis-cluster အလုပ်လုပ်ပုံကို ယေဘူယျအကဌံဥာဏ်တစ်ခုပေသနိုင်မည်ဟု မျဟော်လင့်ပဌီသ ၎င်သကိုအသုံသပဌုနေသူမျာသအတလက် ထင်ရဟာသမဟုတ်သောအချက်အချို့ကိုလည်သ အာရုံစိုက်စေပါသည်။ အချိန်ကဌာမဌင့်စလာ။
သင့်အချိန်အတလက် ကျေသဇူသတင်ပဌီသ ခေါင်သစဉ်နဟင့်ပတ်သက်သည့် မဟတ်ချက်မျာသကို အမဌဲကဌိုဆိုပါသည်။

source: www.habr.com

မဟတ်ချက် Add