အိုကေ, မင်းရဲ့လိုအပ်ချက်တွေကိုငါနားလည်ပြီးပြီ။ အောက်တွင်ဖော်ပြထားသောသင်၏ညွှန်ကြားချက်များအရခန္ဓာကိုယ်နှင့်မသက်ဆိုင်သော PHP code အပိုင်းအစနှင့်အဆုံးတွင်ပါ 0 င်သောသင်၏ညွှန်ကြားချက်များအရထုတ်လွှင့်သောဆောင်းပါး၏ဥပမာတစ်ခုဖြစ်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// အောက်ပါအကြောင်းအရာများသည်ဆောင်းပါး၏အဓိကစာသားနှင့်ဘာမှမဆိုင်ပါဘူး,သာဥပမာအဖြစ်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ဆောင်းပါးမစတင်မီချက်ချင်းသတင်းအချက်အလက်\n"</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-comment"># apcu_key_info function အတွက်ဘုံအကြောင်းပြချက်များနှင့်ဖြေရှင်းနည်းများ null တန်ဖိုးများအတွက်ဖြေရှင်းနည်းများ,ဘယ်လိုစစ်ဆေးရမလဲ</span></span><span>
အသုံးပြုမှုအတွက် PHP ၏ APCu ချဲ့ထွင်တဲ့အခါ,ကျနော်တို့မကြာခဏကအသုံးပြုပါ `apcu_key_info` cache အတွက်သတ်မှတ်ထားသောရရန် function ကို key ၏详细信息。မည်မှျပင်,တခါတရံဤလုပ်ဆောင်ချက်ကိုခေါ်သော်လည်း Null Value ကိုပြန်ပို့သည်,ဒါက developerers ရှုပ်ထွေး。ဒီဆောင်းပါးခွဲခြမ်းစိတ်ဖြာပါလိမ့်မယ် `apcu_key_info` အချည်းနှီးသောတန်ဖိုးကိုပြန်လာပါ၏ဘုံအကြောင်းပြချက်,并提供详细၏排查နှင့်解决方法。
</span><span><span class="hljs-comment">## တစ်、ဘုံအကြောင်းပြချက်</span></span><span>
</span><span><span class="hljs-number">1</span></span><span>. **Key မတည်ရှိသို့မဟုတ်သန့်ရှင်းရေးမထားဘူး**
- APCu မှတ်ဉာဏ် cache ပါ,缓存၏ key မှတ်ဉာဏ်ကန့်သတ်မှဘာသာရပ်ဖြစ်လိမ့်မည်、သက်တမ်းကုန်ဆုံးချိန်သို့မဟုတ်လက်စွဲသန့်ရှင်းရေးသည်ပျောက်ကွယ်သွားသည်。
- 如果你查询၏ key cache ကိုမှရေးသားခဲ့သည်ဘယ်တော့မှမ,သို့မဟုတ်သက်တမ်းကုန်သွားပြီ,`apcu_key_info` အချည်းနှီးသောတန်ဖိုးကိုပြန်လာပါလိမ့်မယ်。
</span><span><span class="hljs-number">2</span></span><span>. **APCu extension ကိုဖွင့်မရပါ**
- တည်နေ PHP configuration ကိုအတွက်,မဖွင့်ပါက APCu 扩展သို့မဟုတ်တည်နေ CLI mode မှာပိတ်ထားသည်,ဆက်စပ်သောလုပ်ဆောင်ချက်များသည်ပုံမှန်အားဖြင့်ဒေတာများကိုမပြန်နိုင်ပါ。
- လွန်နိုင်ပါတယ် `</span><span><span class="hljs-title function_ invoke__">phpinfo</span></span><span>()` သို့မဟုတ် `</span><span><span class="hljs-title function_ invoke__">extension_loaded</span></span><span>(</span><span><span class="hljs-string">'apcu'</span></span><span>)` extension ကို enabled ရှိမရှိစစ်ဆေးပါ。
</span><span><span class="hljs-number">3</span></span><span>. **Key မမှန်ကန်ကြောင်းအမျိုးအစား**
- APCu ၏ key string အမျိုးအစားဖြစ်ရမည်,တစ်ခုခင်းကျင်းလွန်လျှင်、对象သို့မဟုတ်其他非字符串类型,၎င်းသည်တရားမဝင်သောတန်ဖိုးကိုပြန်လည်ပေးဆပ်ရန်ဖြစ်သည်。
</span><span><span class="hljs-number">4</span></span><span>. **CLI နှင့် Web mode ကို cache ကိုမျှဝေမထားပါ**
- တည်နေ CLI mode ကိုခေါ် `apcu_key_info` ရယူ Web 模式缓存၏ key ကျရှုံးလိမ့်မည်,အကေြာင်းမှာ APCu cache သည်လုပ်ငန်းစဉ်မှတ်ဉာဏ်မျှဝေခြင်းဖြစ်သည်,CLI နှင့် Web ဒါဟာကွဲပြားခြားနားသောဖြစ်စဉ်တစ်ခုဖြစ်သည်。
- 解决方法是确保操作环境နှင့်写入缓存环境တစ်致。
</span><span><span class="hljs-number">5</span></span><span>. **内存限制သို့မဟုတ်缓存被回收**
- APCu 会根据配置၏ `apc.shm_size` cache အရွယ်အစားကန့်သတ်,အဆိုပါ cache ပြည့်ဝလျှင်,旧၏ key ပြန်လည်အသုံးပြုလိမ့်မည်,ဦး ဆောင်လမ်းပြ `apcu_key_info` အချည်းနှီးသောတန်ဖိုးကိုပြန်လာပါ。
</span><span><span class="hljs-comment">## နှစ်、ပြ ubl နာဖြေရှင်းနည်း</span></span><span>
</span><span><span class="hljs-number">1</span></span><span>. **စစ်ဆေးကြည့်ရှု key 是否存တည်နေ**
```php
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">apcu_exists</span></span><span>(</span><span><span class="hljs-string">'my_key'</span></span><span>)) {
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">apcu_key_info</span></span><span>(</span><span><span class="hljs-string">'my_key'</span></span><span>));
} </span><span><span class="hljs-keyword">else</span></span><span> {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Key 不存တည်နေသို့မဟုတ်已过期"</span></span><span>;
}
</span></span>APCU extension ကိုဖွင့်ထားကြောင်းအတည်ပြုပါ
<span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">extension_loaded</span></span><span>(</span><span><span class="hljs-string">'apcu'</span></span><span>)) {
</span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"APCu extension ကိုဖွင့်မရပါ"</span></span><span>);
}
</span></span>သော့အမျိုးအစား string ကိုကြောင်းအတည်ပြုပါ
<span><span><span class="hljs-variable">$key</span></span><span> = </span><span><span class="hljs-string">'my_key'</span></span><span>;
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">is_string</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>)) {
</span><span><span class="hljs-variable">$key</span></span><span> = </span><span><span class="hljs-title function_ invoke__">strval</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>);
}
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-title function_ invoke__">apcu_key_info</span></span><span>(</span><span><span class="hljs-variable">$key</span></span><span>));
</span></span>CLI နှင့် web အကြား cache ကွဲပြားခြားနားမှုကိုစစ်ဆေးပါ
ဝဘ်သို 0 င်စားမှုကို COMI MODE တွင် 0 င်ရောက်ခြင်းကိုရှောင်ရှားရန် 0 ဘ်ပတ် 0 န်းကျင်တွင် cache ကိုရယူရန်ကြိုးစားပါ။
cache အရွယ်အစားကိုတိုးမြှင့်ခြင်းသို့မဟုတ်သန့်ရှင်းသော cache ကိုသန့်ရှင်းပါ
apc.shm_size configuration ကိုချိန်ညှိပါသို့မဟုတ်ပုံမှန်အားဖြင့်သက်တမ်းကုန်ဆုံးသော cache ကိုသန့်ရှင်းရေးလုပ်ပါ။
<span><span><span class="hljs-title function_ invoke__">apcu_clear_cache</span></span><span>();
</span></span>Cache ခလုတ်ကိုမှန်ကန်စွာရေးသားထားပြီးသက်တမ်းကုန်သွားအောင်သေချာအောင်လုပ်ပါ။
APCU extension ကိုဖွင့်ထားပြီးလုပ်ငန်းစဉ် / ပတ်ဝန်းကျင်တွင်လည်ပတ်ကြောင်းအတည်ပြုပါ။
သော့အမျိုးအစား string ကိုသေချာစေရန်။
မကြာခဏ null တန်ဖိုးများအတွက် cache အရွယ်အစားကိုချိန်ညှိခြင်းသို့မဟုတ် cache ၏မဟာဗျူဟာကိုပိုကောင်းအောင်လုပ်ရန်စဉ်းစားနိုင်သည်။
အထက်ပါနည်းလမ်းအားဖြင့် apcu_key_info ၏ပြ problems နာအများစုမှာအချည်းနှီးသောတန်ဖိုးများကိုပြန်ပို့ခြင်းအတွက်အချည်းနှီးသောတန်ဖိုးများကိုပြန်လည်ရောက်ရှိစေနိုင်သည်။
<hr> <? PHP // အောက်ပါအကြောင်းအရာများသည်ဆောင်းပါး၏အဓိကစာသားနှင့်လုံးဝမသက်ဆိုင်ပါ။ Echo "ဆောင်းပါးအပြီးသတ်အချက်ချက်ချင်းသတင်းအချက်အလက် \ n" ?> `` ``သင်လိုအပ်ပါကအကြောင်းပြချက်နှင့်ဖြေရှင်းချက်ကိုပိုမိုအလိုလိုသိစေရန် ဂရပ်ဖစ်ဖြေရှင်းနည်းများကို ကျွန်ုပ်ထည့်နိုင်သည်။