Gentle Introduction To Redis

886 views May 18, 2024

အားလုံးပဲ မင်္ဂလာပါခင်ဗျာ။ကျွန်တော်တို့ ဒီနေ့မှာတော့ redis ဆိုတာဘာလဲ မသိသေးတဲ့သူများအတွက် ပို့စ်လေးတစ်ခု sharing လုပ်ပေးချင်ပါတယ်။ကျွန်တော်တို့အားလုံး ဒီကာလမှာ ဘာမှမလုပ်ချင်ကျဘူးဆိုတာနားလည်ပါတယ်။ဒါပေမဲ့ အပျင်းပြေဖတ်လို့ရအောင် တင်ပေးလိုက်ပါတယ်။

Redis ဆိုတာကတော့ in memory database တစ်နည်းအားဖြင့် RAM ထဲမှာ data store တဲ့ database တစ်ခုဖြစ်ပါတယ်။Memory(RAM) ထဲမှာ သိမ်းတာပဲဖြစ်လို့ အရမ်းမြန်ပါတယ်။တစ်ခုခုလိုအပ်လို့ ဥပမာ user တစ်ယောက်ရဲ့ name ကိုသိချင်လို့ ပြန်ဆွဲထုတ်ရရင်လဲ အရမ်းမြန်ပါတယ်။Redis က data type တော်တော်များများ ကို store လို့ရပါတယ်။ ဥပမာအားဖြင့် strings,Hashes, Lists,Sets,Sorted Sets.

Redis က တခြား msyql,postgresql တွေလိုပဲ persistent store လို့ရပါတယ်။ဒါပေမဲ့ ကျွန်တော်ကတော့ persistent store ဖို့တွက် သုံးလေ့မရှိပါဘူး။ဘယ်လိုအခြေ အနေမျိုးတွေမှာ Redis ကို သုံးလေ့ရှိလဲဆိုရင်တော့

Caching
ကျွန်တော်တို့ backend ကနေ mobile ဒါမှမဟုတ် တခြားတစ်ခုခုနဲ့ ဆက်သွယ်ဖို့ rest api တွေရေးရတဲ့အခါ တစ်ခုခုကို calcuation ဥပမာအားဖြင့် sorting လုပ်ပြီး ခနခန ပြန်ပို့ရတဲ့ data တွေရှိပါတယ်။Request တစ်ခုလာတိုင်း ကိုယ်ပြန်ပြချင်တဲ့ items တွေကို sorting ပြန်လုပ်ပြီးမှပို့ရမယ်ဆို ခနခန compute လုပ်ရလို့အဆင်မပြေပါဘူး။ဒီလိုနေရာမှာ ပြန်ပို့မယ့် response ကို redis မှာ cache လုပ်ထားမယ်ဆို database ထဲကနေ တကူးတက ဆွဲမယူရဘဲ ram ပေါ်ကပဲ ယူရလို့ အရမ်းမြန်သွားပြီး response time တွေလဲမြန်သွားပါတယ်။အဓိကအားဖြင့် ကိုယ်ရေးနေတဲ့ application ကို ပိုမြန်စေချင်ပြီး performance တက်ချင်တဲ့အခါမှာ backend မှာ cache အနေနဲ့ သုံးကျပါတယ်။Cache ဆိုတယ့်တိုင်း expire time လေးတော့ သတ်မှတ်ပေးရတာပေါ့။

Message Broker
Message broker ကို အမျိုးမျိုး သုံးကြလေ့ရှိပေမယ့် ကျွန်တော်ကတော့ အခုနောက်ပိုင်းသုံးလာကျတဲ့ microservices architecture ပုံစံလေးနဲ့ပဲရှင်းပြပါတော့မယ်။ဥပမာအားဖြင့် အလွယ်ရှင်းပြရမယ်ဆို ကျွန်တော်တို့ user register လုပ်တယ်ပဲထားပါတော့  ကျွန်တော်တို့ user register လုပ်ပေးတဲ့ service နဲ့ email ပို့ပေးတဲ့ service နှစ်ခုရှိတယ်လို့ အလွယ်သတ်မှတ်လိုက်ပါ။

ဒီမှာ user က register လုပ်လိုက်တာနဲ့ user register လုပ်ပေးတဲ့ service က email ပို့တဲ့ service ကို မင်းဒီ user ရဲ့ email ကို confirm လုပ်တဲ့ mail ပို့ပေးစေချင်တယ်ဆို ကြားထဲမှာ redis ခံထားလို့ရပါတယ်။အဲ့တော့ user က register လုပ်တာနဲ့  user register service ဖြစ်တဲ့ A service က redis ကို ဒီ user register လုပ်တယ်ဆိုတဲ့ event လေးပို့ပေးလိုက်မယ်။ဒီမှာ B service ဖြစ်တဲ့ email ပို့တဲ့ service က redis ကို ဘာပို့လဲ နားထောင်နေမယ်ဆို A က redis ကို ပို့တာနဲ့ B က သိပြီး B service က mail ပို့လိုက်ပါလိမ့်မယ်။ဒါက micro service အချင်းချင်း event driven ပုံစံဆက်သွယ်ကြတာဖြစ်ပါတယ်။ကြားထဲမှာ redis ခံလိုက်တာလေးပါပဲ။နားမလည်ရင် ပုံဖော်ကြည့်လိုက်ပါ။A -> redis <- B ဒီလိုရှိနေပါတယ်။

ကျွန်တော်စာရှည်သွားမှာစိုးလို့ မဆက်တော့ပါဘူး။ကျွန်တော်ပြောသွားတာတွေက နည်းနည်းလေးပဲရှိပါတယ် တခြားသုံးတဲ့ပုံစံတွေလဲရှိကြပါသေးတယ်။စိတ်ဝင်စားတယ်ဆိုရင်တော့ redis ကို install လုပ်ပြီး ကလိကြည့်ဖို့ပြောချင်ပါတယ်။Backend developer လုပ်မယ်ဆို သိကိုသိထားသင့်တာမို့ စမ်းကြည့်ဖို့အကြံပေးလိုပါတယ်။အားလုံးကျေးဇူးတင်ပါတယ်ခင်ဗျာ။