တစ်ပြိုင်နက်တည်း php applications များတွင် cache ၏ဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်စွမ်းဆောင်ရည်တိုးတက်စေရန်အတွက်အဓိကနည်းလမ်းဖြစ်သည်။ Apcu သည် Memory-level cache ဖြစ်သည်။ ၎င်းသည်တစ် ဦး တည်းသောပတ်ဝန်းကျင်တွင်အလယ်အလတ်ဒေတာသိုလှောင်ရုံအတွက်သင့်လျော်သောမှတ်ဉာဏ်အဆင့် cache ဖြစ်သည်။ ၎င်းသည်မြန်ဆန်သောတုန့်ပြန်မှုနှင့်အသုံးပြုရန်လွယ်ကူသည်။ သို့သော် cache ၏ဘဝသံသရာသည်အကန့်အသတ်ရှိသည်။
ဤဆောင်းပါးသည် apcu_entry () function ကိုမည်သို့အသုံးပြုရမည်ကိုစစ်ဆေးပြီး Cache သက်တမ်းကုန်ဆုံးသောအခါပေါ်ပေါက်လာနိုင်သည့်စွမ်းဆောင်ရည်ပြ problems နာများကိုမည်သို့ဖြေရှင်းပြမလဲ။
apcu_entry () သည် PHP 5.5+ တွင်မိတ်ဆက်ပေးသည့်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။
cache မှသော့ချက်တန်ဖိုးကိုရယူရန်ကြိုးစားပါ။
အကယ်. ၎င်းမရှိပါက cache ကိုတွက်ချက်။ ပေးထားသော callback function ကို အသုံးပြု. ရေးသားခြင်း,
အဆိုပါသိုလှောင်တန်ဖိုးကိုပြန်ပို့သည်။
အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
mixed apcu_entry(string $key, callable $callback, int $ttl = 0)
$ key : cache ခလုတ်,
$ callback : cache cache မတည်ရှိသည့်အခါကွပ်မျက်ခံရသည့်လုပ်ဆောင်ချက်တစ်ခု, တန်ဖိုးများကိုထုတ်လုပ်ရန်အသုံးပြုသည်။
$ TTL : Cache ၏သက်တမ်းရှိသည့်အချိန် (စက္ကန့်အနည်းငယ်), ပုံမှန် 0 သည်ပုံမှန်အားဖြင့်အမြဲတမ်းတရားဝင်သည် (မှတ်ဥာဏ်ကိုရှင်းလင်းခြင်းသို့မဟုတ်ဇာတ်ညွှန်းနိဂုံးချုပ်သည်အထိ) ဆိုလိုသည်။
Cache Cache Cache Cache "ဟုခေါ်သော" Cache Cache Cache Cache Cache သည်သက်တမ်းကုန်ဆုံးခြင်းနှင့်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများသည် cache ကိုကျော်လွှားပြီး back-end အရင်းအမြစ်များကိုတိုက်ရိုက်တောင်းဆိုခြင်း,
ရိုးရာနည်းလမ်းကိုအောက်ပါအတိုင်းဖြစ်နိုင်သည် -
$key = 'user_profile_123';
$data = apcu_fetch($key);
if ($data === false) {
$data = get_user_profile_from_db(123); // ဒေတာဘေ့စ်မှမေးမြန်းခြင်း
apcu_store($key, $data, 300); // သိုကာတာ 5 မိနစ်
}
ပြ problem နာက cache ပျက်ပြားသွားရင်တောင်းဆိုမှုအမြောက်အများကိုဒီကိစ်စကိုတစ်ချိန်တည်းမှာပဲ Exit_user_Profile_Db () ကို execute လုပ်လိမ့်မယ်။
နှင့် apcu_entry () ဤကဲ့သို့သောကိုင်တွယ်နိုင်ပါသည်:
$userId = 123;
$key = "user_profile_$userId";
$data = apcu_entry($key, function() use ($userId) {
// တောင်းဆိုမှုကိုတစ်ခုတည်းကွပ်မျက်ခံရလိမ့်မည်,其他请求会等待结果သိုကာတာ后直接获取
return get_user_profile_from_db($userId);
}, 300); // သိုကာတာ 5 မိနစ်
ဤသို့ပြုလုပ်ခြင်း၏ကောင်းကျိုးများမှာ -
တစ်ချိန်တည်းမှာနှေးကွေးသောမေးမြန်းချက်များကိုဖြစ်ပေါ်စေသောတောင်းဆိုမှုများကိုရှောင်ရှားရန်အက်တမ်စစ်ဆင်ရေး,
အသုံးပြုရန်နှင့်ပိုမိုရှင်းလင်းသောယုတ္တိဗေဒ,
Built-in "Break" ယန္တရား, အပိုဆောင်းသော့ခတ်ရန်မလိုအပ်ပါ။
ဥပမာအားဖြင့်မကြာခဏခေါ်သည့် interface တစ်ခုရှိသည်ဆိုပါစို့။
https://api.gitbox.net/weather?city=shanghai
ခေါ်ဆိုမှုအကြိမ်ရေကိုလျှော့ချရန်ကျွန်ုပ်တို့သည်ရလဒ်ကိုစက္ကန့် 60 အတွင်းသိမ်းဆည်းလိုသည်။ apcu_entry () ကိုရေးရန်:
$city = 'shanghai';
$key = "weather_api_result_$city";
$result = apcu_entry($key, function() use ($city) {
$url = "https://api.gitbox.net/weather?city=$city";
$json = file_get_contents($url);
return json_decode($json, true);
}, 60);
ဤနည်းအားဖြင့် cache မအောင်မြင်သည့်အခါတစ် ဦး တည်းသောတောင်းဆိုမှုတစ်ခုတည်းကိုသာအမှန်တကယ်ဝင်ရောက်ကြည့်ရှုခြင်းနှင့်အခြားတောင်းဆိုမှုများသည် cache ကိုအပြီးသတ်ရှာဖွေရန်နှင့်ရလဒ်ကိုဝေမျှရန်စောင့်ဆိုင်းလိမ့်မည်။
သက်ဆိုင်သည့်အခြေအနေများ - APCU သည် CLI Mode မှအပရှေ့ပြေးတစ်မျိုးတည်းပတ် 0 န်းကျင်များအတွက်သင့်တော်ပြီး Multi-process သို့မဟုတ်ဖြန့်ဝေထားသောစနစ်များအတွက်မသင့်တော်ပါ။
cache penetration : apcu_entry () cache ကိုထိုးဖောက်ခြင်း (I.E. ) ကိုမဖြေရှင်းနိုင်ပါ။ ရလဒ်သည် callback တွင် Null သည်ဟုတ်မဟုတ်ဆုံးဖြတ်ပြီး၎င်းကိုရေးရန်ရှိမရှိဆုံးဖြတ်နိုင်သည်။
ပျက်ကွက်ထိန်းချုပ်မှု - မကြာခဏ cache ပျက်ကွက်ခြင်းနှင့်မှတ်ဉာဏ်အသုံးပြုမှုကိုမကြာခဏရှောင်ရှားရန် ttl ကိုကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ပါ။
ခြွင်းချက်ကိုင်တွယ်ခြင်း ။
apcu_entry () ကိုအသုံးပြုပြီးလှပသော cacping မဟာဗျူဟာသည်အထူးသဖြင့် Hotspot အချက်အလက်များနှင့်တစ်ပြိုင်တည်းလက်လှမ်းမီမှုမြင့်မားစွာလုပ်ဆောင်ခြင်းကိုထိရောက်စွာလုပ်ဆောင်နိုင်သည့်အခါ, MOND PHP application များ၏စွမ်းဆောင်ရည်အကောင်းဆုံးလိုအပ်ချက်များအတွက် cache logic ကိုရိုးရှင်းလွယ်ကူစေရန်,
စွမ်းဆောင်ရည်မြင့် Web application များကိုတည်ဆောက်ခြင်းလုပ်ငန်းစဉ်တွင် apcu_entry () ကိုဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်သင်တုန့်ပြန်မှုမြန်နှုန်းနှင့်စနစ်တည်ငြိမ်မှုကိုတိုးတက်စေရန်အတွက်ကိရိယာတစ်ခုဖြစ်လာလိမ့်မည်။