apcu_entry function သည် apcu extension မှသိမ်းဆည်းထားသောအချက်အလက်များကိုသတ်မှတ်ရန်ထောက်ပံ့ပေးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ apcu_store နှင့် apcu_fatch နှင့်မတူသည်မှာ apcu_entry သည် cache မတည်ရှိသည့်အခါအချက်အလက်များကိုထုတ်လုပ်ရန်အချက်အလက်များကိုအလိုအလျောက်ထုတ်ပေးနိုင်သည်။
function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -
mixed apcu_entry ( string $key , callable $callback , int $ttl = 0 )
$ key : သိုလှောင်ထားတဲ့သိုလှောင်ထားတဲ့သိုလှောင်ထားတဲ့ cached key,
$ callback : cached ဒေတာထုတ်လုပ်ရန်အသုံးပြုသော callback function ကို။ cache မတည်ရှိပါက APCU သည်အချက်အလက်များကိုထုတ်လုပ်ရန် callback function ကို execute လုပ်လိမ့်မည်။
$ ttl : cacheed ဒေတာ၏တရားဝင်အချိန် (စက္ကန့်အတွင်း) ။ ပုံသေသည် 0 ဖြစ်သည်။ ဆိုလိုသည်မှာ cache သည်ဘယ်တော့မျှသက်တမ်းကုန်ဆုံးမည်မဟုတ်ဟုဆိုလိုသည်။
apcu_entry တွင် ttl parameter သည် cache ၏ခိုင်လုံသောအချိန်ကိုသတ်မှတ်ရန်အသုံးပြုသည်။ တရားဝင်မှုအချိန်ကုန်ပြီးနောက် cache သည်သက်တမ်းကုန်ဆုံးပြီး Apcu သည်သိုလှောင်ထားသောအချက်အလက်များကိုပြန်လည်ထုတ်လုပ်လိမ့်မည်။ ttl ကို ကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ခြင်းအားဖြင့်သိမ်းဆည်းထားသောအချက်အလက်များကိုအချိန်တိုအတွင်းအဆင့်မြှင့်တင်ပြီး cache သက်တမ်းကုန်ဆုံးခြင်းကြောင့်ဖြစ်ပေါ်လာသောပြ problems နာများကိုရှောင်ရှားနိုင်သည်။
ကျွန်ုပ်တို့တွင်ဒေတာဘေ့စ်စုံစမ်းမှုရလဒ်ရှိသည်ဆိုပါစို့။ အောက်ဖော်ပြပါအတိုင်း cache ၏တရားဝင်ချိန်ကိုသတ်မှတ်ရန် Apcu_entry ကို သုံးနိုင်သည်။
<?php
// ဤသည်ဒေတာဗေ့စ်ကိုမေးမြန်းသော function ကိုဆိုပါစို့
function fetchDataFromDatabase() {
// ဒေတာဘေ့စတစ်ခုမှဒေတာများကိုရယူခြင်း
return "This is the data fetched from the database!";
}
// အသုံးပြု apcu_entry cache စုံစမ်းမှုရလဒ်များ,နှင့် cache ကိုတရားဝင်အချိန်သတ်မှတ်ထား 5 မိနစ်
$data = apcu_entry('database_data', 'fetchDataFromDatabase', 300);
// output ကို cache သို့မဟုတ်ဒေတာဘေ့စစုံစမ်းမှုရလဒ်များ
echo $data;
?>
ဒီဥပမာမှာ apcu_entry လို့ခေါ်တဲ့အခါမှာ Database_Data ' လို့ခေါ်တဲ့အချက်အလက်မရှိဘူးဆိုရင် APCU က FetterDatafromdatabase function ကို 5 မိနစ်ကြာပြီးနောက် 5 မိနစ်လောက်ရမယ်။ အကယ်. cache ကို 5 မိနစ်အတွင်းထပ်မံတောင်းခံပါက APCU သည်သိုလှောင်ထားသည့်အချက်အလက်များကိုတိုက်ရိုက်ပြန်ပို့လိမ့်မည်။
အချို့ဖြစ်ရပ်များတွင်အချက်အလက်အပြောင်းအလဲများသည် cache ၏သက်တမ်းကုန်ဆုံးသည့်နေ့နှင့်မကိုက်ညီပါ။ သိုလှောင်ထားသည့်ဒေတာများသည်အမြဲတမ်းခေတ်မီပြီးတိုင်းပရိုဂရမ်ကိုအားနည်းစေနိုင်သည်။ ၎င်းသည် apcu_delete ကို သင့်တော်သောအချိန်တွင်ခေါ်ဆိုခြင်းဖြင့် cache ကိုဖျက်ပစ်ပြီး apcu_entry မှတဆင့် cache ကိုပြန်လည်ရှင်သန်စေသည်။
<?php
// ကျနော်တို့ cache ကို refresh ဖို့လိုအပ်ပါတယ်ဆိုပါစို့
if (someConditionToRefreshCache()) {
// အဟောင်းကိုသိုလှောင်ထားသောဒေတာကိုဖျက်ပါ
apcu_delete('database_data');
}
// ထို့နောက် carded ဒေတာကိုပြန်လည်
$data = apcu_entry('database_data', 'fetchDataFromDatabase', 300);
// output ကို cache သို့မဟုတ်ဒေတာဘေ့စစုံစမ်းမှုရလဒ်များ
echo $data;
?>
ဤဥပမာတွင်အခြေအနေတစ်ခုနှင့်တွေ့ဆုံသည့်အခါသာ cache ကိုလက်တွေ့ကျကျလန်းဆန်းစေလိမ့်မည်။ ဤသည်မှာသိမ်းဆည်းထားသောအကြောင်းအရာများကိုအချိန်မီမွမ်းမံရန်သေချာစေရန်မဟာဗျူဟာဖြစ်သည်။
cache သက်တမ်းကုန်ဆုံးချိန်ကိုရွေးချယ်ခြင်း - သင့်လျော်သော cache သက်တမ်းကုန်ဆုံးချိန်ကိုသတ်မှတ်ရန်အလွန်အရေးကြီးသည်။ ချိန်ညှိချိန်သည်ကြာလွန်းလျှင်အချက်အလက်များကိုအချိန်ကြာမြင့်စွာမွမ်းမံနိုင်ပါ။ အကယ်. ချိန်ညှိချက်သည်တိုလွန်းပါက cache ကိုမကြာခဏပြန်လည်ထုတ်လုပ်နိုင်ပြီးစွမ်းဆောင်ရည်ဆုံးရှုံးမှုများဖြစ်ပေါ်လာသည်။
Thread Source : Apcu_entry ကိုယ်တိုင်သည်ချည်မျှင်ဖြစ်သည်။ သို့သော်မြင့်မားသောတစ်ပြိုင်နက်တည်းကပတ် 0 န်းကျင်တွင် callback function ကိုဘေးကင်းစွာကွပ်မျက်ရန်သေချာစေရန်အလွန်အရေးကြီးသည်။