လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> apcu_entry မှတဆင့်အသုံးပြုသူ authentication ကိုသတင်းအချက်အလက်များကို cache လုပ်နည်း

apcu_entry မှတဆင့်အသုံးပြုသူ authentication ကိုသတင်းအချက်အလက်များကို cache လုပ်နည်း

gitbox 2025-05-29

0 က်ဘ်ဆိုက်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အသုံးပြုသူ authentication into information ၏လုပ်ဆောင်မှုသည်များသောအားဖြင့် database မေးမြန်းချက်များသို့မဟုတ်အခြားရှုပ်ထွေးသောတွက်ချက်မှုများပါ 0 င်သည်။ PHP ၏ APCU တိုးချဲ့မှုသည်အသုံးပြုသူ authentication information ကိုသိမ်းဆည်းရန်အသုံးပြုသောထိရောက်သော cache engine စနစ်ကိုထောက်ပံ့ပေးသည်။ ဤဆောင်းပါးတွင် APCu_entry function ကိုထိရောက်စွာ cache user authentication information ကိုအသုံးပြုရန်မည်သို့အသုံးပြုရမည်ကိုလေ့လာမည်။

apcu_entry function ကဘာလဲ?

apcu_entry သည် PHP ၏ APCU တိုးချဲ့ခြင်းဖြင့်ထောက်ပံ့ပေးသော cache function ဖြစ်သည်။ ၎င်းသည်အချက်အလက်များကို cache ထဲတွင်သိမ်းဆည်းရန်အသုံးပြုသည်။ ဒေတာများတည်ရှိပြီးပါက၎င်းသည် cache ထဲရှိတန်ဖိုးကိုပြန်လည်ရယူသည်။ ဒေတာမရှိပါက၎င်းသည်အချက်အလက်များကို calmback function မှတဆင့်အချက်အလက်များကိုထုတ်ပေးသည်။ သာမန် apcu_store သို့မဟုတ် apcu_add နှင့်မတူဘဲ apcu_entry သည် သော့မရှိသေးသည့်အခါ cardback ကိုအလိုအလျောက်ထုတ်ပေးသည်။

apcu_entry ကိုအသုံးပြုသူ authentication information ကိုသုံးပါ

အသုံးပြုသူ၏ authentication ကိုကိုင်တွယ်သည့်အခါအသုံးပြုသူ၏မည်သူမည်ဝါဖြစ်ကြောင်းအတည်ပြုရန်နှင့်သက်ဆိုင်ရာအချက်အလက်များ, အခန်းကဏ် sections များစသည်တို့ကိုပြန်လည်ရယူရန်လိုအပ်သည်။ ဒေတာဘေ့စ်ကိုအချိန်တိုင်းမေးမြန်းခြင်းမှရှောင်ရှားရန်အတွက် apcu_entry ကို အသုံးပြု. အသုံးပြုသူ၏ authentication information ကို cache လုပ်ရန်သင်အသုံးပြုနိုင်သည်။

အဆင့် 1 - Apcu extension ကို install လုပ်ပြီး enable လုပ်ပါ

ပထမ ဦး စွာသင်၏ PHP ပတ်ဝန်းကျင်တွင် APCU extension ကို install လုပ်ပြီးဖွင့်ထားကြောင်းသေချာစေရန်လိုအပ်သည်။ ၎င်းကို install မလုပ်ပါကအောက်ပါ command ကိုသုံးနိုင်သည်။

 sudo apt-get install php-apcu
sudo service apache2 restart

PHP.INI ဖိုင်တွင် APCU extension ကို enable လုပ်ပါ။

 extension=apcu.so

အဆင့် 2: အသုံးပြုသူ authentication ကိုသတင်းအချက်အလက်ရယူသည့် callback function ကိုဖန်တီးပါ

လက်တွေ့ကျသော application များတွင်အသုံးပြုသူ authentication ကိုသတင်းအချက်အလက်များကိုဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသည်။ သုံးစွဲသူ၏ authentication ကိုဒေတာဘေ့စ်မှရယူရန် Callback function ကိုကျွန်ုပ်တို့လိုအပ်သည်။

 function fetch_user_auth_info($user_id) {
    // ဤတွင်အသုံးပြုသူရဲ့ authentication ကိုအချက်အလက်များကိုဒေတာဘေ့စ်မှတစ်ဆင့်မေးမြန်းခြင်းကိုယူဆသည်။
    // ဥပမာအားဖြင့်:အသုံးပြုသူ၏အခန်းကဏ် and ကိုနှင့်ခွင့်ပြုချက်ကိုမေးမြန်းပါ
    $db = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password');
    $stmt = $db->prepare("SELECT role, permissions FROM users WHERE id = :user_id");
    $stmt->execute(['user_id' => $user_id]);
    return $stmt->fetch(PDO::FETCH_ASSOC);
}

အဆင့် 3: apcu_entry ကို အသုံးပြု. အသုံးပြုသူ authentication information ကိုသုံးပါ

ထို့နောက်ကျွန်ုပ်တို့သည် apcu_entry function ကို အသုံးပြု. သုံးစွဲသူ၏ authentication information ကို cache လုပ်ရန်ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။ အသုံးပြုသူ ID ကို cache ခလုတ်အဖြစ်အသုံးပြုသည်ဟုယူဆပြီးစစ်မှန်ကြောင်းအထောက်အထားကြောင်းသတင်းအချက်အလက်များကို cache ထဲတွင်သိမ်းဆည်းထားသည်ဟုယူဆပါ။

 function get_user_auth_info($user_id) {
    // အသုံးပြု apcu_entry Cache အသုံးပြုသူ authentication ကိုသတင်းအချက်အလက်
    $cache_key = 'user_auth_' . $user_id;

    return apcu_entry($cache_key, function() use ($user_id) {
        // cache ထဲမှာဒေတာမရှိလျှင်,ထို့နောက်ဒေတာဘေ့စ်ကိုရှာဖွေရန်နှင့်ဒေတာများကိုပြန်ပို့ရန် callback function ကိုခေါ်ပါ
        return fetch_user_auth_info($user_id);
    });
}

ဤဥပမာတွင် apcu_entry သည် cache @ {$ user_id {$ user_id {$ user_id} ရှိပြီးသားရှိမရှိစစ်ဆေးသည်။ အကယ်. တည်ရှိပါက၎င်းသည်ယာယီ cactred authentication ကိုသတင်းအချက်အလက်များကိုတိုက်ရိုက်ပြန်ပို့လိမ့်မည်။ အကယ်. ၎င်းသည်မတည်ရှိပါကဒေတာဘေ့စ်မှသုံးစွဲသူ၏ authentication ကိုသတင်းအချက်အလက်များကိုရယူရန်နှင့် APCU မှ APCU မှ APCU သို့သိမ်းဆည်းရန် FETT_USER_AUTH_INFO function ကိုခေါ်လိမ့်မည်။

အဆင့် 4: Cached User authentication ကိုသုံးပါ

Cache Logic ကိုအလိုအလျောက်ကိုင်တွယ်မည့် authentication လုပ်ငန်းစဉ်အတွင်း Get_user_Auth_info function ကိုတိုက်ရိုက်ခေါ်ဆိုနိုင်သည်။

 $user_id = 123; // လက်ရှိအသုံးပြုသူယူဆ ID ဟုတ်ကဲ့ 123
$user_auth_info = get_user_auth_info($user_id);

// အသုံးပြု用户的认证信息
if ($user_auth_info['role'] == 'admin') {
    echo "Welcome, admin!";
} else {
    echo "Access denied.";
}

အဘယ်ကြောင့် apcu_entry function ကိုအသုံးပြုပါ?

  1. Database Query များကိုလျှော့ချပါ ။ အသုံးပြုသူ၏ authentication information ကို cache လုပ်ခြင်းဖြင့်ဒေတာဘေ့စ်သို့ 0 င်ရောက်နိုင်သည်။

  2. အလိုအလျောက် Cache Generation - apcu_entry function သည် cache cache များကိုဖန်တီးရန် Cache Cache ကိုဖန်တီးရန် Cache Content ကိုထုတ်လုပ်ရန် countback ကိုအလိုအလျောက်အကောင်အထည်ဖော်လိမ့်မည်။

  3. cache သက်တမ်းရှိထိန်းချုပ်မှု - APCU သည် cache ကိုရှင်းလင်းသည်အထိဒေတာကို cache ထဲ၌အမြဲတမ်းသိမ်းဆည်းထားလိမ့်မည်။ သို့သော်, Cache သက်တမ်းကုန်ဆုံးချိန်ကိုလိုအပ်သလိုသို့မဟုတ်အခြား cache ပေါ်လစီများကိုအသုံးပြုရန်လည်းသင်ပြုလုပ်နိုင်သည်။

cache သန့်ရှင်းရေးနှင့်သက်တမ်းကုန်ဆုံးစီမံခန့်ခွဲမှု

APCU သည်ရိုးရှင်းသောနှင့်ထိရောက်သော cache ယန္တရားကိုထောက်ပံ့သော်လည်း cache သက်တမ်းကုန်ဆုံးခြင်း၏စီမံခန့်ခွဲမှုသည်အရေးပါသောကိစ္စတစ်ခုဖြစ်သည်။ ထုတ်လုပ်မှုပတ် 0 န်းကျင်တွင်သင်သည် cache ကိုပုံမှန်သန့်ရှင်းစင်ကြယ်စွာသန့်ရှင်းရေးလုပ်ရန်သို့မဟုတ် Cache သက်တမ်းကုန်ဆုံးချိန်ကိုသတ်မှတ်ရန်လိုအပ်နိုင်သည်။ cache ကိုဖျက်ရန် apcu_delete ကို သုံးနိုင်သည်သို့မဟုတ် cache ၏ရှင်သန်ရပ်တည်ရေးကာလကို apcu_ttl နှင့်ပေါင်းစပ်ထားနိုင်သည်။

 // cache ကိုဖျက်ပစ်ပါ
apcu_delete('user_auth_' . $user_id);

// cache သက်တမ်းကုန်ဆုံးချိန်ကိုသတ်မှတ်ပါ(ဥပမာအားဖြင့် 1 နာရီ)
apcu_store('user_auth_' . $user_id, $user_auth_info, 3600);

အကျဉ်းချုပ်

apcu_entry function ကို cache အသုံးပြုသူ authentication information ကိုအသုံးပြုရန်အတွက်အလွန်ထိရောက်သောနည်းဖြင့် အသုံးပြု. စနစ်စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ ဒေတာဘေ့စ်သို့အလိုအလျောက်ထုတ်ပေးခြင်းနှင့်မကြာခဏမေးမြန်းချက်များကိုဒေတာဘေ့စ်သို့လျှော့ချခြင်းအားဖြင့် developer များက application response use န်းကျင်နှင့်သယံဇာတစားသုံးမှုကိုအကောင်းဆုံးဖြစ်စေနိုင်သည်။ ကျိုးကြောင်းဆီလျော်သော cache စီမံခန့်ခွဲမှုနည်းဗျူဟာများဖြင့်စနစ်၏တည်ငြိမ်အေးချမ်းရေးနှင့်ပမာဏကိုပိုမိုတိုးတက်စေနိုင်သည်။