လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> API မှတောင်းဆိုထားသောပြန်လာဒေတာကို cache လုပ်ရန် apcu_entry ကိုအသုံးပြုနည်း

API မှတောင်းဆိုထားသောပြန်လာဒေတာကို cache လုပ်ရန် apcu_entry ကိုအသုံးပြုနည်း

gitbox 2025-05-27

apcu_entry function သည် APCU extension မှပေးသော cache စစ်ဆင်ရေးနည်းလမ်းဖြစ်သည်။ ၎င်း၏ function သည် cache ထဲတွင်တန်ဖိုးကိုသိမ်းဆည်းရန်နှင့်တန်ဖိုးမတည်ရှိသည့်အခါဒေတာကိုရယူရန် callback function ကို execute လုပ်ရန်ဖြစ်သည်။ ဤ callback function သည်များသောအားဖြင့် API ဒေတာကိုရယူရန်သို့မဟုတ်ရှုပ်ထွေးသောတွက်ချက်မှုများကိုပြုလုပ်ရန်နေရာတစ်ခုဖြစ်သည်။

 mixed apcu_entry(string $key, callable $callback, int $ttl = 0)
  • $ key : cached key တန်ဖိုးကိုများသောအားဖြင့်သိမ်းဆည်းထားသောအချက်အလက်များကိုခွဲခြားသတ်မှတ်ရန်အသုံးပြုသည်။

  • $ callback : callback function ကို။ cache တွင်သော့မရှိတော့ပါကအချက်အလက်ရယူရန် callback function ကိုကွပ်မျက်လိမ့်မည်။

  • $ ttl : စက္ကန့်ပိုင်းအတွင်း cache ၏တရားဝင်မှုကာလ။ Cached Data ကိုသက်တမ်းကုန်ဆုံးပြီးနောက်ဖျက်ပစ်လိမ့်မည်။

အဘယ်ကြောင့် apcu_entry ကိုအသုံးပြုပါ?

apcu_entry အသုံးပြုခြင်း၏အဓိကရည်ရွယ်ချက်မှာဒေတာဘေ့စ်သို့မဟုတ်ဝေးလံခေါင်သီ API တောင်းဆိုမှုများကိုလျှော့ချရန်နှင့်စနစ်၏တုန့်ပြန်မှုနှုန်းကိုတိုးတက်စေရန်ဖြစ်သည်။ ဒေတာသိမ်းဆည်းထားသည့်အခါနောက်တစ်ခေါက်တွင်တူညီသောတောင်းဆိုမှုသည်ဝေးလံခေါင်သီသော 0 န်ဆောင်မှုကိုပြန်လည်ရယူခြင်းမပြုဘဲ cache ကိုတိုက်ရိုက်ဖတ်ပါ။ ၎င်းသည်ဆာဗာဝန်ကိုသိသိသာသာလျော့နည်းစေရုံသာမကအသုံးပြုသူအတွေ့အကြုံကိုထိရောက်စွာတိုးတက်စေသည်။

ဥပမာ, API interface ကိုခေါ်ဆိုသည့်အခါ API ၏ပြန်လာသောအချက်အလက်များသည်အတော်အတန်တည်ငြိမ်ပြီးမကြာခဏပြောင်းလဲခြင်းမရှိပါ။ ဤအချက်အလက်များကိုသိမ်းဆည်းခြင်းအားဖြင့်အသုံးပြုသူတောင်းဆိုချက်ကိုတောင်းခံသည့်အခါတိုင်း API တောင်းခံခြင်းကိုရှောင်ရှားနိုင်သည်။

Return Data ကိုတောင်းဆိုရန် Apcu_entry Cache Cache Cache API ကိုမည်သို့အသုံးပြုရမည်နည်း။

ဤတွင် apcu_entry ကို အသုံးပြု. ပြန်လာသောအချက်အလက်များကိုမည်သို့သိမ်းဆည်းရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။

1 ။ Apcu ကို configure

ပထမ ဦး စွာသင်၏ PHP ပတ် 0 န်းကျင်သည် APCU extension ကိုတပ်ဆင်ပြီးဖွင့်ထားပါ။ အကယ်. သင်မထည့်သွင်းပါက၎င်းကိုအောက်ပါ command မှတဆင့် install လုပ်နိုင်သည်။

 sudo apt-get install php-apcu

တပ်ဆင်ပြီးနောက် PHP 0 န်ဆောင်မှုကိုပြန်လည်စတင်ပါ။

 sudo service php-fpm restart

2 ။ cache ကိုယုတ္တိဗေဒရေးပါ

ကျွန်ုပ်တို့တွင် API interface တစ်ခုရှိသည်ဆိုပါစို့။ ကျွန်ုပ်တို့သည် Returned data ကို apcu_entry မှတဆင့် cache လုပ်နိုင်ပါတယ်။

 <?php
// မေးမြန်း API အသုံးပြုသူအချက်အလက်များကိုရယူပါ
function fetch_user_data($user_id) {
    // သွား URL ဒေတာကိုရယူပါ,ဒီမှာဒေတာဖြစ်ပါတယ် JSON ပမာဏ
    $url = "https://gitbox.net/api/user/{$user_id}";
    $response = file_get_contents($url);
    return json_decode($response, true);
}

// အသုံးပြု apcu_entry သိုကာတာ API ဒေတာကိုပြန်သွားပါ
function get_user_data($user_id) {
    // သိုကာတာ的键值
    $cache_key = "user_data_{$user_id}";
    
    // 尝试从သိုကာတာ中ဒေတာကိုရယူပါ
    return apcu_entry($cache_key, function() use ($user_id) {
        // 如果သိုကာတာ中没有数据,ထို့နောက်မှ API ဒေတာကိုရယူပါ
        return fetch_user_data($user_id);
    }, 3600); // သိုကာတာ 1 နာရီ
}

// နမူနာခေါ်ဆိုမှု
$user_data = get_user_data(123);
print_r($user_data);
?>

အထက်ဖော်ပြပါကုဒ်များတွင်ကျွန်ုပ်တို့သည် Remote API မှအသုံးပြုသူအချက်အလက်များကိုရယူရန် FETC_USER_DATA function ကိုသတ်မှတ်သည်။ ထို့နောက်ဒေတာများကို apcu_entry function မှတဆင့်သိမ်းဆည်းထားသဖြင့် cache_data _ {$ user_id {{user_id} ဖြစ်ပြီးသိမ်းဆည်းထားသောတရားဝင်မှုကာလသည် 1 နာရီဖြစ်သည်။ အကယ်. ဒေတာသည် cache ထဲတွင်မရှိပါက apcu_entry သည် callback function ကို Execute လုပ်ပြီး API မှဒေတာများကိုရယူပါ။

3 ။ cached ဒေတာခွဲခြမ်းစိတ်ဖြာ

cache တွင်သက်ဆိုင်ရာအချက်အလက်များရှိပြီးသား APCu_entry သည် callback function ကိုထပ်မံအကောင်အထည်ဖော်ခြင်းမရှိဘဲ Cached data ကိုတိုက်ရိုက်ပြန်ပို့လိမ့်မည်။ cache သက်တမ်းကုန်ဆုံးသွားသောအခါနောက်ဆုံးတောင်းဆိုမှုကိုနောက်ဆုံးပေါ်ဒေတာကိုရယူရန်နှင့် re-cache ကိုရယူရန်ပြန်လည်ခေါ်ဆိုမှုကိုပြန်လည်လုပ်ဆောင်လိမ့်မည်။

အကောင်းဆုံးအကြံပြုချက်များ

  1. cache ကိုမူဝါဒ - သင့်လျော်သော cache သက်တမ်းကုန်ဆုံးသည့်ရက်ကိုရွေးချယ်ပါ။ အမှန်တကယ် applications များအနေဖြင့်ကွဲပြားခြားနားသောဒေတာများသည်မတူကွဲပြားသော update ကြိမ်နှုန်းအမျိုးမျိုးရှိနိုင်သည်။

  2. Cache Cleanup : ဒေတာအပြောင်းအလဲများရှိပါက cache ကိုသန့်ရှင်းရေးလုပ်ရန်သတိရပါ။ cache ကိုဖျက်ရန် apcu_delete ကို သင်အသုံးပြုနိုင်သည်။

 apcu_delete($cache_key);
  1. Memory Management : Apcu Cache Data ကိုဆာဗာ၏မှတ်ဉာဏ်တွင်သိမ်းဆည်းထားပါသည်, ထို့ကြောင့် cache ကိုအသုံးပြုသောအခါမှတ်ဥာဏ်အသုံးပြုမှုကိုထည့်သွင်းစဉ်းစားရန်လိုအပ်သည်။ အကယ်. သိုလှောင်ထားသည့်ဒေတာပမာဏသည်ကြီးမားလွန်းပါက၎င်းသည်စနစ်စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်စေမည့်မှတ်ဥာဏ်မလုံလောက်သေးပါ။