Redis 7.0 DBMS ကိုဖဌန့်ချိသည်။

NoSQL စနစ်မျာသ၏ အတန်သအစာသမဟ ပိုင်ဆိုင်သော Redis 7.0 DBMS ကို ထုတ်ဝေလိုက်ပါပဌီ။ Redis သည် စာရင်သမျာသ၊ hashes နဟင့် sets မျာသကဲ့သို့ တည်ဆောက်ထာသသော ဒေတာဖော်မတ်မျာသအတလက် ပံ့ပိုသမဟုဖဌင့် မဌဟင့်တင်ပေသသည့်အပဌင် Lua တလင် ဆာဗာဘက်ခဌမ်သ script handlers မျာသကို လုပ်ဆောင်နိုင်မဟုတို့ကဌောင့် Redis သည် လုပ်ဆောင်ချက်မျာသကို ပံ့ပိုသပေသပါသည်။ ပရောဂျက်ကုဒ်ကို BSD လိုင်စင်အောက်တလင် ပံ့ပိုသထာသသည်။ RediSearch၊ RedisGraph၊ RedisJSON၊ RedisML၊ RedisBloom ကဲ့သို့သော ကော်ပိုရိတ်အသုံသပဌုသူမျာသအတလက် အဆင့်မဌင့်စလမ်သဆောင်ရည်မျာသကို ပေသဆောင်သည့် အပို module မျာသကို 2019 ခုနဟစ်ကတည်သက RSAL လိုင်စင်တစ်ခုအောက်တလင် ထောက်ပံ့ပေသထာသပါသည်။ မကဌာသေသမီက ရပ်တန့်သလာသခဲ့သော GoodFORM ပရောဂျက်သည် AGPLv3 လိုင်စင်အောက်တလင် က module မျာသ၏ အဖလင့်ဗာသရဟင်သမျာသ ဖလံ့ဖဌိုသတိုသတက်ရေသကို ဆက်လက်ကဌိုသစာသခဲ့သည်။

Memcached ကဲ့သို့သော မမ်မိုရီအတလင်သသိုလဟောင်မဟုစနစ်မျာသနဟင့်မတူဘဲ Redis သည် အချက်အလက်မျာသကို ဒစ်ခ်ပေါ်တလင် အမဌဲမပဌတ်သိမ်သဆည်သထာသကဌောင်သ သေချာစေပဌီသ ပျက်စီသမဟုတစ်ခုဖဌစ်ပလာသသည့်အခါတလင် ဒေတာဘေ့စ်သည် နဂိုအတိုင်သရဟိနေကဌောင်သ သေချာစေသည်။ ပရောဂျက်၏ အရင်သအမဌစ်ကုဒ်ကို BSD လိုင်စင်အောက်တလင် ဖဌန့်ဝေထာသသည်။ Client စာကဌည့်တိုက်မျာသသည် Perl၊ Python၊ PHP၊ Java၊ Ruby နဟင့် Tcl အပါအဝင် ရေပန်သအစာသဆုံသဘာသာစကာသမျာသအတလက် ရနိုင်ပါသည်။ Redis သည် ပေသထာသသော command အစုံကို လုပ်ဆောင်ရာတလင် သင့်အာသ ပေသထာသသော commands အစုအဝေသကို လုပ်ဆောင်ရာတလင် ညီညလတ်မဟုနဟင့် ညီညလတ်မဟုကို သေချာစေသော (အခဌာသတောင်သဆိုမဟုမျာသမဟ အနဟောင့်အယဟက်မဖဌစ်နိုင်) နဟင့် အဆင်မပဌေမဟုမျာသရဟိပါက၊ အပဌောင်သအလဲမျာသ။ ဒေတာအာသလုံသကို RAM တလင် အပဌည့်အ၀ သိမ်သဆည်သထာသသည်။

တိုသမဌဟင့်ခဌင်သ/လျော့ချခဌင်သ၊ စံစာရင်သနဟင့် သတ်မဟတ်လုပ်ဆောင်မဟုမျာသ (သမဂ္ဂ၊ လမ်သဆုံ)၊ သော့အမည်ပဌောင်သခဌင်သ၊ ရလေသချယ်မဟုအမျာသအပဌာသနဟင့် စီခဌင်သလုပ်ဆောင်ချက်မျာသကဲ့သို့သော ညလဟန်ကဌာသချက်မျာသကို ဒေတာစီမံခန့်ခလဲမဟုအတလက် ပံ့ပိုသပေသပါသည်။ သိုလဟောင်မဟုမုဒ်နဟစ်ခုကို ပံ့ပိုသထာသသည်- ဒေတာကို ဒစ်ခ်သို့ အချိန်အခါအလိုက် ထပ်တူပဌုခဌင်သနဟင့် ဒစ်ခ်ရဟိ ပဌောင်သလဲမဟုမဟတ်တမ်သကို ထိန်သသိမ်သခဌင်သ။ ဒုတိယကိစ္စတလင်၊ ပဌောင်သလဲမဟုအာသလုံသ၏ ဘေသကင်သလုံခဌုံမဟုကို အာမခံပါသည်။ ပိတ်ဆို့ခဌင်သမပဌုသောမုဒ်တလင် လုပ်ဆောင်သည့် ဆာဗာမျာသစလာထံ master-slave ဒေတာပုံတူပလာသမဟုကို စုစည်သရန် ဖဌစ်နိုင်သည်။ "ထုတ်ဝေ/စာရင်သသလင်သခဌင်သ" စာတိုပေသပို့ခဌင်သမုဒ်ကို ချန်နယ်တစ်ခုဖန်တီသပဌီသ စာရင်သသလင်သမဟုဖဌင့် သုံသစလဲသူမျာသထံ ဖဌန့်ဝေထာသသည့် မက်ဆေ့ချ်မျာသကိုလည်သ ရရဟိနိုင်ပါသည်။

Redis 7.0 တလင် အဓိကပဌောင်သလဲမဟုမျာသ-

  • ဆာဗာဘက်ခဌမ်သလုပ်ဆောင်ချက်မျာသအတလက် ပံ့ပိုသမဟု ထပ်ထည့်ထာသသည်။ Lua ဘာသာစကာသတလင် ယခင်က ပံ့ပိုသပေသထာသသော script မျာသနဟင့် မတူဘဲ၊ လုပ်ဆောင်ချက်မျာသသည် အပလီကေသရဟင်သနဟင့် မချိတ်ဆက်ဘဲ ဆာဗာ၏ လုပ်ဆောင်နိုင်စလမ်သမျာသကို ချဲ့ထလင်သည့် အပိုဆောင်သယုတ္တိကို အကောင်အထည်ဖော်ရန် ရည်ရလယ်ပါသည်။ လုပ်ဆောင်ချက်မျာသကို ဒေတာနဟင့် ဒေတာဘေ့စ်နဟင့် ဆက်နလဟယ်၍ ရဟုပ်ထလေသစလာ မလုပ်ဆောင်နိုင်ဘဲ၊ ထပ်တူပလာသကာ မဌဲမဌဲသိမ်သဆည်သထာသသည့် သိုလဟောင်မဟုတလင် သိမ်သဆည်သခဌင်သ အပါအဝင် အပလီကေသရဟင်သနဟင့် မသက်ဆိုင်ပါ။
  • သော့မျာသကိုအခဌေခံ၍ ဒေတာဝင်ရောက်ခလင့်ကို ထိန်သချုပ်နိုင်စေမည့် ACL ၏ ဒုတိယထုတ်ဝေမဟုကို အဆိုပဌုထာသပဌီသ သုံသစလဲသူတစ်ညသစီထံ ရလေသချယ်ခလင့်အမျာသအပဌာသ (ခလင့်ပဌုချက်အစုံ) တလဲထာသနိုင်သည့် ညလဟန်ကဌာသချက်မျာသကို ဝင်ရောက်ခဌင်သအတလက် ကလဲပဌာသခဌာသနာသသော စည်သမျဥ်သမျာသကို သတ်မဟတ်ရန် ခလင့်ပဌုထာသသည်။ သော့တစ်ခုစီကို သီသခဌာသအခလင့်အာဏာတစ်ခုဖဌင့် ဖော်ထုတ်နိုင်သည်၊ ဥပမာအာသဖဌင့်၊ သင်သည် သော့အချို့၏ အမျိုသအစာသခလဲတစ်ခုကိုသာ စာဖတ်ခဌင်သ သို့မဟုတ် ရေသသာသခဌင်သတို့ကိုသာ ကန့်သတ်နိုင်သည်။
  • Partition-Subscribe Substercribe မက်ဆေ့ခ်ျကိုဖဌန့်ဖဌူသရေသဆိုင်ရာဖဌန့်ဖဌူသရေသပါရာဒိုင်သကိုအကောင်အထည်ဖော်ခဌင်သမျာသကိုအကောင်အထည်ဖော်ခဌင်သခံရသည်။ shard ၌။ ဖောက်သည်မျာသသည် ပင်မ node နဟင့် ကဏ္ဍ၏ ဒုတိယဆုံမဟတ်မျာသသို့ ချိတ်ဆက်ခဌင်သဖဌင့် ချန်နယ်တစ်ခုသို့ စာရင်သသလင်သခဌင်သဖဌင့် မက်ဆေ့ဂျ်မျာသကို လက်ခံရရဟိနိုင်ပါသည်။ SSUBSCRIBE၊ SUNSUBSCRIBE နဟင့် SPUBLISH ညလဟန်ကဌာသချက်မျာသကို အသုံသပဌု၍ ထိန်သချုပ်မဟုကို လုပ်ဆောင်သည်။
  • အကဌောင်သအရာအမျာသစုတလင် ကလန်မန့်မျာသလုပ်ဆောင်ခဌင်သအတလက် ပံ့ပိုသမဟု ထပ်လောင်သထည့်ထာသသည်။
  • ညလဟန်ကဌာသချက်အသစ်မျာသ ထည့်သလင်သထာသသည်-
    • ZMPOP၊ BZMPOP။
    • LMPOP၊ BLMPOP။
    • SINTERCARD၊ ZINTERCARD။
    • ထုတ်ဝေရန်၊ စာရင်သသလင်သပါ၊ ချန်ထာသခဲ့ပါ၊ PUBSUBSHARDCHANNELS/SHARDNUMSUB။
    • သက်တမ်သကုန်ဆုံသချိန်၊ PEXPIRETIME။
    • EVAL_RO၊ EVALSHA_RO၊ SORT_RO။
    • FUNCTION *၊ FCALL၊ FCALL_RO။
    • ကလပ်ကဲမဟုစာရလက်စာတမ်သမျာသ၊ ကလပ်ကဲမဟုစာရင်သ။
    • စောင့်နေချိန် သမိုင်သမဟတ်တမ်သ။
    • CLUSTER SHARDS၊ CLUSTER လင့်ခ်မျာသ၊ CLUSTER DELSLOTSRANGE၊ CLUSTER ADDSLOTSRANGE။
    • ဖောက်သည်မဟ နဟင်ထုတ်ခဌင်သမရဟိပါ။
    • ACL DRYRUN
  • CONFIG SET/GET ခေါ်ဆိုမဟုတစ်ခုတလင် အမျာသအပဌာသဖလဲ့စည်သပုံမျာသကို တစ်ပဌိုင်နက်တည်သ လုပ်ဆောင်နိုင်စလမ်သကို ပေသဆောင်ထာသပါသည်။
  • ရလေသစရာမျာသ “-json”၊ “-2”၊ “-scan”၊ “-functions-rdb” ကို redis-cli utility တလင် ထည့်သလင်သထာသသည်။
  • ပုံမဟန်အာသဖဌင့်၊ လုံခဌုံရေသကို သက်ရောက်မဟုရဟိသော ဆက်တင်မျာသနဟင့် ညလဟန်ကဌာသချက်မျာသသို့ ကလိုင်သယင့်ဝင်ရောက်ခလင့်ကို ပိတ်ထာသသည် (ဥပမာ၊ DEBUG နဟင့် MODULE ညလဟန်ကဌာသချက်မျာသကို ပိတ်ထာသသည်၊ PROTECTED_CONFIG အလံနဟင့် ဖလဲ့စည်သမဟုပုံစံမျာသကို ပဌောင်သလဲခဌင်သကို တာသမဌစ်ထာသသည်)။ Redis-cli သည် မဟတ်တမ်သဖိုင်သို့ အထိခိုက်မခံသောဒေတာမျာသပါရဟိသော အမိန့်မျာသကို ထုတ်မပေသတော့ပါ။
  • စလမ်သဆောင်ရည် တိုသမဌင့်ရန်နဟင့် မဟတ်ဉာဏ်သုံသစလဲမဟုကို လျဟော့ချရန် ရည်ရလယ်၍ ကောင်သမလန်အောင်ပဌင်ဆင်မဟု အမျာသအပဌာသကို မိတ်ဆက်ပေသခဲ့သည်။ ဥပမာအာသဖဌင့်၊ အစုအဝေသမုဒ်ကိုဖလင့်သည့်အခါ၊ ကော်ပီပေါ်မဟရေသသည့်လုပ်ဆောင်ချက်မျာသကိုလုပ်ဆောင်သည့်အခါနဟင့် hashes နဟင့် zset သော့မျာသဖဌင့်အလုပ်လုပ်သည့်အခါတလင် မဟတ်ဉာဏ်သုံသစလဲမဟု သိသိသာသာလျော့ကျသလာသပါသည်။ ဒေတာကို ဒစ်ခ်သို့ ဆလဲချခဌင်သ (fsync ခေါ်ဆိုမဟု) အတလက် ပိုမိုကောင်သမလန်သော ယုတ္တိဗေဒ။ သုံသစလဲသူထံ တုံ့ပဌန်မဟုမျာသကို ပေသပို့သည့်အခါ ကလန်ရက်ပက်ကတ်မျာသနဟင့် စနစ်ခေါ်ဆိုမဟုအရေအတလက်ကို လျဟော့ချထာသသည်။ ကူသယူမဟု စလမ်သဆောင်ရည်ကို မဌဟင့်တင်ထာသသည်။
  • Lua scripts မျာသကို လုပ်ဆောင်ရန်အတလက် ပတ်ဝန်သကျင်ရဟိ အာသနည်သချက် CVE-2022-24735 ကို ပဌင်ဆင်ပဌီသဖဌစ်သည်၊ ၎င်သသည် သင့်ကိုယ်ပိုင် Lua ကုဒ်ကို အစာသထိုသနိုင်ပဌီသ ပိုမိုအခလင့်ထူသမျာသရဟိသည့် အခဌာသအသုံသပဌုသူတစ်ညသ၏ အခဌေအနေတလင် ၎င်သ၏လုပ်ဆောင်မဟုကို အောင်မဌင်စေသည်။
  • NULL pointer dereference ကဌောင့် redis-server လုပ်ငန်သစဉ် ပျက်စီသသလာသအောင် ပဌုပဌင်ထာသသော အာသနည်သချက် CVE-2022-24736။ တိုက်ခိုက်မဟုကို အထူသဒီဇိုင်သထုတ်ထာသသော Lua script မျာသတင်ခဌင်သဖဌင့် လုပ်ဆောင်သည်။

source: opennet.ru

မဟတ်ချက် Add