Apcu (အခြား PHP Cache အသုံးပြုသူ) သည် Memory-level cache ကိုထောက်ပံ့သော PHP အသုံးပြုသူဒေတာ cache extension ဖြစ်သည်။ OPCICE မှအသုံးပြုသောအခါ PHP လျှောက်လွှာစွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ apcu_entry function သည်ရိုးရှင်းသော interface ကိုပေးသည်။
$value = apcu_entry('cache_key', function() {
// Cache Cached ဒေတာထုတ်လုပ်ရန်ကုဒ်
return expensiveOperation();
});
cache_key သည် cache တွင်တည်ရှိပါကသက်ဆိုင်ရာ cache တန်ဖိုးကိုတိုက်ရိုက်ပြန်လည်ရောက်ရှိလိမ့်မည်။ ဒီလိုမှမဟုတ်ရင် callback ကွပ်မျက်ခံရလိမ့်မယ်, ရလဒ်ကိုယာယီပြန်ပို့လိမ့်မယ်။
Apcu ကို PHP extension package manager တွင် Linux ဖြန့်ဝေမှုအများစုအတွက်ပေးထားပြီးတပ်ဆင်ခြင်းနည်းလမ်းမှာအောက်ပါအတိုင်းဖြစ်သည် -
sudo apt-get install php-apcu
တပ်ဆင်ပြီးသည်နှင့် PHP-FPM (သို့) ဝက်ဘ်ဆာဗာကိုပြန်လည်စတင်ပါ။
sudo systemctl restart php7.4-fpm
0 င်းဒိုးအသုံးပြုသူများသည် APCU DLL ၏သက်ဆိုင်ရာ apcu dll ကို gitbox.net မှဒေါင်းလုပ်ဆွဲနိုင်သည်။ ၎င်းကို PHP's ext directory တွင်ထည့်ပြီး php.ini တွင်ထည့်ပါ။
extension=php_apcu.dll
ဆာဗာကိုပြန်လည်စတင်ပြီးနောက်အကျိုးသက်ရောက်လိမ့်မည်။
apcu_entry သည် APCU 5.1.0 နှင့်အထက်တို့မှပေးသော interface အသစ်တစ်ခုဖြစ်သည်။ အကယ်. သင်သည် apcu ၏နိမ့်ကျသောဗားရှင်းများကိုအသုံးပြုပါကဤ function ကိုမခေါ်နိုင်ပါ။ ဗားရှင်းများကိုအောက်ပါကုဒ်များဖြင့်ရှာဖွေတွေ့ရှိနိုင်သည်။
echo phpversion('apcu');
အကယ်. ဗားရှင်းသည်အလွန်နိမ့်ပါကတိုးချဲ့မှုကိုအဆင့်မြှင့်တင်ရန်အကြံပြုသည်။
APCU သည် command-line mode cache ကိုပုံမှန်အားဖြင့် enable လုပ်ထားပါ။ Php.ini ကို configure လုပ်ရန်သင်ဖွင့်ရန်လိုအပ်သည်။
apc.enable_cli=1
ဒီလိုမှမဟုတ်ရင် apcu_entry က cli အောက်မှာဒေတာကို cache လို့မရပါဘူး။
Apcu သည် local memory cache ဖြစ်ပြီးဖြန့်ဝေခြင်းကိုမထောက်ခံပါ။ အကယ်. application ကိုဆာဗာများစွာတွင်ချထားပါကသိမ်းဆည်းထားသောအချက်အလက်များကိုထပ်တူပြုခြင်းကိုမဖြေရှင်းနိုင်ပါ။ ဖြန့်ဖြူးထားသော cache solution များကို redis သို့မဟုတ် memcached ကဲ့သို့သောပေါင်းစပ်ရန်အကြံပြုသည်။
အချို့သောမျှဝေထားသောအိမ်ရှင်အချို့သည်ပုံမှန်အားဖြင့် APCU မသန်စွမ်းသို့မဟုတ်အကန့်အသတ်ဖြင့်သာရှိသည်။ အိမ်ရှင်ကိုပထမ ဦး ဆုံးထောက်ခံအားပေးမှုအတည်ပြုရန်လိုအပ်ပါကလိုအပ်ပါကဖောက်သည်ဝန်ဆောင်မှုသို့မဟုတ်အဆင့်မြှင့်တင်ရေးလုပ်ငန်းကိုဆက်သွယ်ပါ။
ဤတွင် Apcu_entry ကို အသုံးပြု. ဒေတာဘေ့စ်မေးမြန်းမှုရလဒ်များကို Cache Query ရလဒ်များကိုမည်သို့ကိုင်တွယ်ရမည်ကိုပြသသောရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<?php
// cache database စုံစမ်းမှုရလဒ်များ
$userData = apcu_entry('user_123', function() {
// ဒေတာဘေ့စ်စုံစမ်းမေးမြန်းမှုကို Simulate
return ['id' => 123, 'name' => 'Zhang San', 'email' => '[email protected]'];
});
print_r($userData);
ရလဒ်အနေဖြင့်ရလဒ်အနေဖြင့်ပထမကွပ်မျက်မှုသည် cache ကိုထုတ်လုပ်ရန် callback function ကိုခေါ်ဆိုပါလိမ့်မည်။ နောက်ဆက်တွဲ cache ကိုတိုက်ရိုက်ဖတ်ပါလိမ့်မည်။
function တွင်အမှားမရှိပါ ။ APCU extension ကိုမှန်ကန်စွာတပ်ဆင်ပြီးဖွင့်ထားကြောင်းအတည်ပြုပါ။
မမှန်ကန်သော cache : apc.enable_cli သည် 1 (CLI အောက်ရှိအသုံးပြုပါက) ဟုတ်မဟုတ်စစ်ဆေးပါ။
cache ကိုမွမ်းမံခြင်းမရှိပါ ။ callback function သည်ယုတ္တိနည်းမှန်မှန်ကန်ကန်မှန်ကန်ကြောင်းအတည်ပြုပါ။ cache ကိုမသန့်ရှင်းသေးပါ။
အထက်ပါအဆင့်များမှတစ်ဆင့် APCU တိုးချဲ့ခြင်းကိုပြုပြင်ခြင်းနှင့်ဖွဲ့စည်းပုံကိုပြုပြင်ခြင်းနှင့်ဖွဲ့စည်းမှုကိုပြုပြင်ခြင်းကိုပြုပြင်ပြောင်းလဲခြင်းနှင့်ပြုပြင်ပြောင်းလဲမှုများကိုပြုပြင်ခြင်း သည်ပုံမှန်အားဖြင့်ပုံမှန်အားဖြင့်ပုံမှန် အားဖြင့်အလုပ်လုပ်နိုင်ပြီး PHP application များ၏စွမ်းဆောင်ရည်ကိုထိထိရောက်ရောက်တိုးတက်အောင်ပြုလုပ်နိုင်သည်။