တစ်ပြိုင်နက်တည်း php php applications များတွင် cache ၏ဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်နှင့်ဒေတာဘေ့စ်ဖိအားကိုလျှော့ချရန်အရေးကြီးသောနည်းလမ်းတစ်ခုဖြစ်သည်။ apcu (အခြားရွေးချယ်စရာ PHP cache user) သည်အစာရှောင်ခြင်းဒေတာများ၌အစာရှောင်ခြင်းအချက်အလက်များအတွက်သင့်လျော်သောပေါ့ပါးသော local cache seturning ဖြစ်သည်။ apcu_entry function သည် APCU တွင်အလွန်လက်တွေ့ကျပြီးအဆင့်မြင့် interface တစ်ခုဖြစ်သည်။ ၎င်းသည် "မတည်ရှိပါက cache ကိုဖတ်ရန်, ရေးခြင်းနှင့်ပြန်လာခြင်း" ကိုကြွေးကြော်စွာအကောင်အထည်ဖော်နိုင်မည်ဖြစ်သည်။ ဤဆောင်းပါးသည် apcu_entry ကို Cache များကိုစီမံခန့်ခွဲရန်, လျှောက်လွှာစွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်နှင့်လက်တွေ့ကျသောဥပမာအားဖြင့်ပူးတွဲပါလက်တွေ့ကျတဲ့ဥပမာကိုပူးတွဲတင်ပြရမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပါလိမ့်မည်။
apcu_entry သည် PHP 5.5 နှင့်အထက်တွင် APCU တိုးချဲ့ခြင်းဖြင့်ပေးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏အခြေခံအသုံးပြုမှုမှာအောက်ပါအတိုင်းဖြစ်သည် -
mixed apcu_entry(string $key, callable $generator [, int $ttl = 0 ])
parameter သည်ဖော်ပြချက်:
$ key : cached key name ။
$ Generator - ဒီသော့ထဲမှာ cache ထဲမှာမတည်ရှိပါက callback function ကိုကွပ်မျက်ခံရချိန်တွင်၎င်း၏ပြန်လည်တန်ဖိုးကို cache ထဲတွင်သိမ်းဆည်းထားပြီးပြန်လာလိမ့်မည်။
$ TTL : CACHED ရှင်သန်ရပ်တည်ရေးအချိန် (စက္ကန့်), ပုံမှန်သည်အမြဲတမ်းဆိုလိုသည်။
ဤပုံစံကို cache stampede ကာကွယ်မှု ဟုခေါ်သည်, ဖြစ်စဉ်များကိုတစ်ပြိုင်နက်တည်း cache ပျက်ကွက်ခြင်းနှင့်အခြေခံဒေတာအရင်းအမြစ်များကိုတောင်းဆိုခြင်းမှကာကွယ်ခြင်းမှကာကွယ်ခြင်းကိုကာကွယ်ပေးသည်။
ပုံမှန်ဇာတ်လမ်းတစ်ပုဒ်ကိုမြင်ယောင်ကြည့်ပါ။ သင်၏ 0 က်ဘ်ဆိုက်ပင်မစာမျက်နှာသည်အရောင်းအ 0 ယ်များစာရင်းကိုပြသရန်လိုအပ်ပြီးဒေတာ၏ဤအပိုင်းကိုဒေတာဘေ့စ်မှမေးမြန်းခြင်းဖြစ်သည်။ တောင်းဆိုမှုတစ်ခုစီအတွက်စာကြည့်တိုက်ကိုတိုက်ရိုက်စစ်ဆေးပါက၎င်းသည်မလိုအပ်သောစွမ်းဆောင်ရည်ဆုံးရှုံးမှုများကိုဖြစ်ပေါ်စေလိမ့်မည်။ ဤအချက်အလက်များကိုကြည့်ရှုရန် apcu_entry ကို သုံးနိုင်သည်။
$hotProducts = apcu_entry('hot_products', function() {
// ဒေတာဘေ့စ်မှရေရောင်းကုန်ပစ္စည်းများစာရင်းကိုတုပပါ
return getHotProductsFromDatabase();
}, 300); // သိုကာတာ 5 မိနစ်
ဤနည်းအားဖြင့် cache တည်ရှိသောအခါ cache data များကိုတိုက်ရိုက်ပြန်ပို့သည်။ မဟုတ်ရင်ဒေတာဘေ့စ်ကနေဒေတာတွေကိုဖတ်ပြီး cache ကိုရေးဖို့ callback ကွပ်မျက်ခံရတယ်။
အမှန်တကယ်စီးပွားရေးတွင်သိုလှောင်ထားသောအကြောင်းအရာသည်ငြိမ်သက်ခြင်းမဟုတ်ပါ။ ဥပမာအားဖြင့်ထုတ်ကုန်အသစ်များကိုရေပူရောင်းသည့်စာရင်းသို့မဟုတ်ထုတ်ကုန်အခြေအနေပြောင်းလဲမှုများကိုထည့်သွင်းသောအခါသက်ဆိုင်ရာ cache ကိုသန့်ရှင်းရေးပြုလုပ်ရန်လိုအပ်သည်။
APCU_DELETETE () ကို တက်ကြွစွာခေါ်ဆိုခြင်းဖြင့်သတ်မှတ်ထားသော cache ကိုဖျက်နိုင်သည်။
apcu_delete('hot_products');
နောက်တစ်ကြိမ်တွင်သင်ဝင်ရောက်ကြည့်ရှုသောအခါ apcu_entry သည် cache ကို update လုပ်ရန် Generator function ကိုခေါ်လိမ့်မည်။ ဤနည်းလမ်းသည်ရိုးရာ apcu_fetch + apcu_store ထက်ပိုမိုရှင်းလင်း။ အနုမြူအက်တမ်ဖြစ်သည်။
အောက်ဖော်ပြပါသည် URL များကိုပေါင်းစပ်ထားသောလျှောက်လွှာဥပမာတစ်ခုဖြစ်သည်။ ကျွန်ုပ်တို့သည်အသုံးပြုသူ၏အချက်အလက်များကိုဝေးလံခေါင်သီသော interface မှ ( https://gitbox.net/api/upi/user/123 ) နှင့် cache ကို cache ကိုကြည့်ရှုနိုင်သည်။
function getUserInfo($userId) {
$cacheKey = "user_info_$userId";
return apcu_entry($cacheKey, function() use ($userId) {
// ဝေးလံခေါင်သီသော interface တစ်ခုမှဒေတာများကိုရယူရန် Simulate
$url = "https://gitbox.net/api/user/$userId";
$json = file_get_contents($url);
return json_decode($json, true);
}, 600); // သိုကာတာ 10 မိနစ်
}
$user = getUserInfo(123);
Interface အချက်အလက်အပြောင်းအလဲများရှိပါကသင်ခေါ်ဆိုနိုင်သည်။
apcu_delete("user_info_123");
တိကျသောအသုံးပြုသူများ၏သတင်းအချက်အလက် cache ကိုရှင်းလင်းရန်။
ရိုးရာ cache ရယူခြင်းနှင့်နှိုင်းယှဉ်ခြင်းနှင့်ယုတ္တိဗေဒရေးခြင်းနှင့်နှိုင်းယှဉ်ပါ။
if (!apcu_exists($key)) {
$value = expensiveOperation();
apcu_store($key, $value);
} else {
$value = apcu_fetch($key);
}
apcu_entry ကို အသုံးပြုခြင်းသည်ကုဒ်ရှုပ်ထွေးမှုကိုသိသိသာသာလျှော့ချနိုင်သည်။ ၎င်းသည်အထူးသဖြင့်မြင့်မားသောအသွားအလာပတ်ဝန်းကျင်တွင်အထူးအရေးကြီးသည်။
apcu_entry သည် APCU တွင်အလွန်အစွမ်းထက်။ အသုံးပြုရလွယ်ကူသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်ဒေတာထုတ်လုပ်မှု, cache ရေးသားခြင်းနှင့် cache ဖတ်ခြင်း, APCU_DELETETET နှင့်ပေါင်းစပ်ပြီး cache များကို caches များကိုစီမံခန့်ခွဲနိုင်ပြီး PHP applications များကိုပိုမိုထိရောက်စွာတည်ငြိမ်စေနိုင်သည်။ apcu_entry ကို စနစ်တကျအသုံးပြုခြင်းအားဖြင့်သင်သည်ပိုမိုမြန်ဆန်သောတုန့်ပြန်မှုနှင့်အောက် 0 င်သည့်ဝဘ်စနစ်ကိုအလွယ်တကူတည်ဆောက်နိုင်သည်။