စွမ်းဆောင်ရည်မြင့်စွာအနားယူသည့်နေရာများတည်ဆောက်သည့်အခါ, တုန့်ပြန်မှုမြန်နှုန်းနှင့်စနစ်ဝန်သည် developer များနှင့်သက်ဆိုင်သည့်အဓိကပြ issues နာများဖြစ်သည်။ တူညီသောအချက်အလက်များ၏မကြာခဏစာဖတ်ခြင်းကြောင့်ဖြစ်သောစွမ်းဆောင်ရည်အုံကြွမှုကိုဖြေရှင်းနိုင်ရန် PHP သည် cacu_entry function ကို အသုံးပြု. apcu အသုံးပြုသူ cache ကိုအသုံးပြုရန်အတွက်ထိရောက်သောကိရိယာတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် apcu_entry function ကိုအသုံးပြုပုံကို Cache တုန့်ပြန်မှုဆိုင်ရာအချက်အလက်များကို အသုံးပြု. Interface စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေရန်အတွက် APCu_entry Function ကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။
apcu_entry သည် PHP APCU တိုးချဲ့မှုမှပေးသောအဆင်ပြေသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏ function မှာ - cache တွင်သတ်မှတ်ထားသောသော့တစ်ခုရှိလျှင်၎င်းသည်သက်ဆိုင်ရာတန်ဖိုးကိုတိုက်ရိုက်ပြန်ပို့သည်။ cache တွင်သော့မတည်ရှိပါကထောက်ပံ့ပေးသည့် callback function ကိုအချက်အလက်များကိုထုတ်လုပ်ရန်နှင့်ဒေတာများကို cache သို့သိမ်းဆည်းရန်ဖြစ်သည်။
function ကိုလက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
mixed apcu_entry(string $key, callable $callback, int $ttl = 0)
$ key : cache key name ။
$ callback : cache ကိုမတည်ရှိပါကလုပ်ဆောင်သည်။
$ TTL : optional, cacheed သက်တမ်းကုန်ဆုံးချိန် (စက္ကန့်), ပုံမှန်မဟုတ်သောဘယ်တော့မှမ။
ကျွန်ုပ်တို့တွင်ကုန်ပစ္စည်းအချက်အလက်များကိုပြန်ပို့ပေးသော Restious API ရှိသည်ဆိုပါစို့။ apcu_entry ကို အသုံးပြု. ဤတုန့်ပြန်မှုအချက်အလက်များကို cache လုပ်ရန် database မေးမြန်းချက်အရေအတွက်ကိုထိထိရောက်ရောက်လျှော့ချနိုင်သည်။
ဒီမှာနမူနာကုဒ်တစ်ခုပါ။
<?php
header('Content-Type: application/json');
// ဒေတာဘေ့စ်မှထုတ်ကုန်သတင်းအချက်အလက်ရရှိရန်တုပ
function getProductFromDatabase($productId) {
// ဤသည်ဒေတာဘေ့စစုံစမ်းရေးစစ်ဆင်ရေးဖြစ်ပါတယ်ယူဆ
return [
'id' => $productId,
'name' => 'နမူနာထုတ်ကုန်များ',
'price' => 99.99,
'url' => 'https://gitbox.net/product/' . $productId
];
}
// ထုတ်ကုန်ရယူပါ ID
$productId = isset($_GET['id']) ? intval($_GET['id']) : 1;
// cache ကိုသော့ချက်အမည်ကိုတည်ဆောက်ပါ
$cacheKey = 'product_' . $productId;
// အသုံးပြု apcu_entry cache ကိုဒေတာ
$product = apcu_entry($cacheKey, function() use ($productId) {
return getProductFromDatabase($productId);
}, 300); // သိုကာတာ 5 မိနစ်
echo json_encode([
'status' => 'success',
'data' => $product
]);
apcu_entry ကို သုံးရန်, သင်သည်ဆာဗာကို install လုပ်ပြီး APCU တိုးချဲ့မှုအတွက်သေချာအောင်လုပ်ရန်လိုအပ်သည်။
extension ကို install လုပ်ပါ (Debian စနစ်ကိုဥပမာအဖြစ်ယူပြီး)
sudo apt install php-apcu
php.ini ဖိုင်ကိုတည်းဖြတ်ပြီးထည့်ပါ။
extension=apcu.so
apc.enable_cli=1
PHP 0 န်ဆောင်မှုကိုပြန်လည်စတင်ပါ။
sudo systemctl restart php8.1-fpm
Apcu သည်တစ်ကိုယ်ရေဘဝအတွက်ပတ်ဝန်းကျင်အတွက်သာသင့်တော်ပြီး node Multi-node Cluster ဖြန့်ကျက်မှုအတွက်မသင့်တော်ပါ။ သင်၏ API သည်ဆာဗာများစွာတွင်လည်ပတ်နေပါက Redis သို့မဟုတ် Memcach ကဲ့သို့သောဖြန့်ဝေထားသော cache များကိုအသုံးပြုရန်အကြံပြုသည်။
apcu_entry ၏ cache သည်မှတ်ဥာဏ်အဆင့်ဖြစ်ပြီး PHP သို့မဟုတ် server ကိုပြန်လည်စတင်ခြင်းအားဖြင့်သိမ်းဆည်းထားသောအချက်အလက်အားလုံးကိုရှင်းလင်းလိမ့်မည်။
cache ကိုအသုံးပြုသောအခါရေရှည်သိုလှောင်မှုကြောင့်ဒေတာကုန်သည်များကိုရှောင်ရှားရန် cache ပျက်ကွက်ချိန် (TTL) သည်အကျိုးသင့်အကြောင်းသင့်ရှိပါစေ။
apcu_entry function ကိုမှတစ်ဆင့် PHP developer များက Libraries များကိုထပ်မံမမိတ်ဆက်ခြင်းမရှိဘဲ PHP developer များသည်သက်တောင့်သက်သာရှိသည့် API သို့ရောက်ရှိနိုင်သည်။ ၎င်းသည် Interface Response Speed ကိုတိုးတက်စေရုံသာမက, အသေးစားနှင့်အလတ်စားစနစ်များသို့မဟုတ် stand-bloody api applications များအတွက် apcu_entry သည်ပေါ့ပါး။ ရိုးရှင်းပြီးလက်တွေ့စွမ်းဆောင်ရည်အကောင်းဆုံးအဖြေရှာဖြစ်သည်။