PHP ၏ cache ၏ယန္တရားယန္တရားတွင် APC (Outp Cache) နှင့် APCU (APC User Cache) သည်နှစ်ရှည်လများတိုးချဲ့ရန်ဖြစ်သည်။ PHP ဗားရှင်းသည်ဆက်လက်တိုးတက်ပြောင်းလဲလာသည်နှင့်အမျှ APC ကို APCU ဖြင့်အစားထိုးသည်။ PHP 7 နှင့် PHP 8 တွင် Apcu_entry () function သည် cache အသုံးပြုခြင်း၏ပင်မနည်းလမ်းကိုတဖြည်းဖြည်းချင်းအသုံးပြုသည်။ ဤဆောင်းပါးသည် PHP 7 နှင့် PHP 8 တွင်ရိုးရာ APC Cacting ယန္တရားနှင့်၎င်းတို့၏သက်ဆိုင်ရာအသုံးပြုမှုဆိုင်ရာအခြေအနေများနှင့်စွမ်းဆောင်ရည်သက်ရောက်မှုများနှင့်စွမ်းဆောင်ရည်သက်ရောက်မှုများအကြားကွဲပြားခြားနားမှုများကိုဤဆောင်းပါးတွင်လေ့လာပါလိမ့်မည်။
PHP 5.x ERA တွင် APC သည်လူကြိုက်များသော cache extension တစ်ခုဖြစ်သည်။ ၎င်းသည် opcode cache နှင့်အသုံးပြုသူဒေတာ cache ကိုထောက်ပံ့သည်။ သို့သော် PHP 5.5 ကို Built-in opcache ကို မိတ်ဆက်ပေးပြီးကတည်းက APC ၏ Opcode Cache Cache Caching function ကိုအစားထိုးခဲ့သည်။ အသုံးပြုသူအချက်အလက်သိုလှောင်မှုအတွက်အထောက်အပံ့ကိုထိန်းသိမ်းရန် APCU ကိုအသုံးပြုသူအဆင့် Cache ကိုမိတ်ဆက်ပေးပြီးအာရုံစိုက်ခဲ့သည်။
ထို့ကြောင့် PHP 7 မှ စ. APCU အစား apcu အစား apcu အစားသုံးစွဲသူအချက်အလက်များကိုသိမ်းဆည်းထားသည့်နေရာကိုအာရုံစိုက်ရန်အကြံပြုသည်။
PHP 7.1 ကတည်းက APCU_ENTRY () APCU_ENTRE () သည် APCU extension မှမိတ်ဆက်ပေးသည်။ ၎င်း၏ function မှာ "တန်ဖိုးကိုရယူခြင်းနှင့်တွက်ချက်ခြင်းနှင့်တွက်ချက်ခြင်းနှင့် cache ကိုရယူခြင်းနှင့် cache ကိုရယူရန်", Cumbersome Cache စစ်ဆေးမှုများနှင့် setting code ကိုရှောင်ရှားရန်ဖြစ်သည်။ ဥပမာအားဖြင့်:
$value = apcu_entry('my_cache_key', function() {
// စျေးအကြီးဆုံးလုပ်ရပ်များလုပ်ဆောင်ပါ
return file_get_contents('https://gitbox.net/data.json');
}, 300); // သိုကာတာ 300 စက်ဏန့်
ဒီ function ကဘုံ cacing ပုံစံများကိုရိုးရှင်းပါတယ်:
if (apcu_exists('my_cache_key')) {
$value = apcu_fetch('my_cache_key');
} else {
$value = some_expensive_operation();
apcu_store('my_cache_key', $value, 300);
}
function ကိုဒီဇိုင်းနှင့်အသုံးပြုမှုလွယ်ကူခြင်း
apcu_entry () cache ကိုယုတ္တိဗေဒကို function counic လုပ်ခြင်း, လက်ဖြင့်စစ်ဆေးခြင်း, ဆန့်ကျင်ဘက်အနေဖြင့် APC ၏ရိုးရာအသုံးပြုမှုသည် developer များကို apc_fetch () နှင့် apc_store () ကို အတိအလင်းခေါ်ဆိုရန်လိုအပ်သည်။
thread ဘေးကင်းလုံခြုံမှုနှင့်စွမ်းဆောင်ရည်
apcu_entry () cache ထိုးဖောက်မှုကိုရှောင်ရှားရန်၎င်း၏ပြည်တွင်းအကောင်အထည်ဖော်မှုကို၎င်း၏ပြည်တွင်းအကောင်အထည်ဖော်မှုတွင်သော့ခတ်ယန္တရားကိုအသုံးပြုသည်။ ရိုးရာ APC နည်းစနစ်များသည်ထိုကဲ့သို့သော built-in ကာကွယ်မှုကင်းမဲ့ပြီးတစ်ပြိုင်နက်တည်းကပြ problems နာများကိုကိုယ်တိုင်ကိုင်တွယ်ရန် developer များလိုအပ်သည်။
PHP 8 တွင်စွမ်းဆောင်ရည်
PHP 8 သည် PHP 7 ထက်ပိတ်ပစ်သည့်အခါ APCu_entry () သည် ပိုမိုကောင်းမွန်သောစွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေသည်။ တစ်ချိန်တည်းမှာပင် Apcu သည် PHP 8 ရှိ Jit အင်ဂျင်များနှင့်ပိုမိုရင်းနှီးလွယ်ခြင်းရှိသည်။ ၎င်းသည် PHP 8 တွင်ပိုမိုကောင်းမွန်သောသဟဇာတဖြစ်သည်။
ဖတ်ရလွယ်ကူခြင်းနှင့်ထိန်းသိမ်းမှု
apcu_entry () အသုံးပြုသောကုဒ်သည်ခေတ်သစ် PHP encoding style နှင့်ပိုမိုရှင်းလင်းစွာနှင့်ပိုမိုနီးကပ်သည်။ ရိုးရာ APC cache code သည်မကြာခဏရိုးရှင်းသောစီရင်ဆုံးဖြတ်ချက်များနှင့်အချည်းနှီးသောအသိုက်နှင့်အပြည့်အဝသည်။
ပြန်ခေါ်ခြင်းအထောက်အပံ့
apcu_entry () သည် callback function ကိုအငြင်းပွားမှုတစ်ခုအဖြစ်လက်ခံသည်။ ဆန့်ကျင်ဘက်အနေဖြင့် APC ၏ရိုးရာချဉ်းကပ်မှုသည်ဤဇာတိပကတိအထောက်အပံ့မရှိပါ။
PHP 7.1 နှင့်အထက်တွင် apcu_entry () apcu_entry () ကို အထူးသဖြင့်တွက်ချက်မှုကုန်ကျစရိတ်များနှင့်အတူကိုင်တွယ်သည့်အခါ။
APCU ကို Multi-process သို့မဟုတ် cli mode တွင်မှီခိုနေပါက၎င်း၏ cache သည်လက်ရှိဖြစ်စဉ်ကိုကန့်သတ်ထားသည်။
cache ၏တည်ငြိမ်မှုကိုသေချာစေရန် APCUS ကဲ့သို့သော APCU (ဥပမာ apc.shm_size ) ကို configure လုပ်ပါ။
သင် API မှအကြောင်းအရာရရှိသောစနစ်တစ်ခုကိုတည်ဆောက်နေသည့်စနစ်တစ်ခုကိုတည်ဆောက်နေသည့်စနစ်တစ်ခုကိုတည်ဆောက်နေသည့်စနစ်တစ်ခုကိုတည်ဆောက်နေသည့်စနစ်တစ်ခုကို ( https://gitbox.net/api/posts ) ကိုသင်ရေးနိုင်သည်။
$posts = apcu_entry('cached_posts', function() {
$json = file_get_contents('https://gitbox.net/api/posts');
return json_decode($json, true);
}, 600);
ဤနည်းလမ်းသည် cache မအောင်မြင်ပါကထပ်တူထပ်မျှခေါ်ဆိုမှုများနှင့်အရင်းအမြစ်စွန့်ပစ်ပစ္စည်းများကိုရှောင်ရှားနိုင်သည့်အခါသာအချက်အလက်များကိုပြန်လည် 0 င်ရောက်ခြင်းကိုသေချာစေသည်။
apcu_entry () သည် APCU မှ APCU မှအကြံပြုထားသော cache interface ဖြစ်ပြီးရိုးရှင်းမှု, ကောင်းမွန်သောစွမ်းဆောင်ရည်နှင့်တစ်ပြိုင်နက်တည်းလုံခြုံရေးကိုအားသာချက်များရှိသည်။ အထူးသဖြင့် PHP 7 နှင့် PHP 8 တွင်အထူးသဖြင့် PHP 7 နှင့် PHP 8 တွင်ပိုမိုသင့်တော်သည်။ အမှန်တကယ်စီမံကိန်းများတွင် developer များသည် APCU_ENTRY () မှ APCU_ENTRY () မှ APCU_ENTRY () မှတဖြည်းဖြည်းပြောင်းရွှေ့သင့်သည်။