PHC ၏ APC (အခြား PHP cache) extension ကိုအသုံးပြုသောအခါ apcuiterator :: rewind သည် Iterator ကိုပြန်လည်သတ်မှတ်ရန်အတွက်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းကို cache စီမံခန့်ခွဲမှုနှင့်စွမ်းဆောင်ရည်အကောင်းမြင်အတွက်အသုံးပြုသည်။ ပုံမှန်အားဖြင့် ပြန်လှည့်သည် iterator သည် cache ၏အစမှနောက်တဖန်ဖြတ်သန်းရကြောင်းသေချာစေသည်။ သို့သော်အချို့ဖြစ်ရပ်များတွင် Rewind မှပြန်လာသောရလဒ်များသည်မကိုက်ညီသောရလဒ်များသည်မကိုက်ညီပါ။ ဤဆောင်းပါးသည်ဤပြ problem နာကိုမည်သို့ debug လုပ်ပြီးဖြေရှင်းမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
apcuiterator သည် cached အကြောင်းအရာများကိုဖြတ်သန်းရန်အသုံးပြုသော APC တိုးချဲ့မှုတွင်အတန်းထဲတွင်အတန်းတစ်ခုဖြစ်သည်။ ၎င်းသည် developer များက developer များက developer များကယာယီသိုလှောင်ထားသောအချက်အလက်များကိုကြားဖြတ်နည်းစနစ်များဖြင့်ဖတ်ရှုပြီးသက်ဆိုင်ရာစစ်ဆင်ရေးများကိုလုပ်ဆောင်ရန်ခွင့်ပြုသည်။ Rewind () နည်းလမ်း၏ရည်ရွယ်ချက်မှာ cache ၏ start အနေအထားမှပြန်လည်ဖြတ်သန်းနိုင်အောင်လက်ရှိကြားဖြတ်ကိုပြန်လည်စတင်ရန်ဖြစ်သည်။
ပုံမှန်အခြေအနေများအရ Rewind ကိုခေါ်ပြီးနောက် () ကို ခေါ်ယူပြီးနောက် ITERATH သည် cache ၏ပထမဆုံး element သို့ပြန်သွားသင့်သည်။ သို့သော်အောက်ပါပြ problems နာများပေါ်ပေါက်လာသောအခါပြန်လည်နေရာချထား ခြင်း ၏အကျိုးရလဒ်သည်ကိုက်ညီမှုရှိနိုင်သည်။
cache ကို ဖျက်ပစ်သို့မဟုတ်ပြုပြင်မွမ်းမံခြင်း ,
တစ်ပြိုင်နက်တည်းလုပ်ဆောင်မှုများ - APC cache ကို Multipreaded သို့မဟုတ် Multiproadess 0 င်ရောက်ခြင်းသည်ကိုက်ညီမှုမရှိပါ။
cache သက်တမ်းကုန်သွားပြီ - cache item သက်တမ်းကုန်သွားပြီဆိုရင် Rewind () သည် အချည်းနှီးသောသို့မဟုတ်မမှန်ကန်သော cache ကိုပြန်ပို့နိုင်သည်။
Cache အကျင့်ပျက်ခြစားမှုများ - cache database ၏အက်ကွဲခြင်းသို့မဟုတ်ကိုက်ညီမှုမရှိသောရေးသားချက်များသည် ပြန်လည် သင့်တော်စွာအလုပ်လုပ်ရန်ဖြစ်စေနိုင်သည်။
apcuderator ၏ ရှေ့နောက်မညီရလဒ်များပြ the နာကိုရှာဖွေရန်နှင့်ဖြေရှင်းနိုင်ရန်အတွက်အောက်ပါအတိုင်း,
ပထမ ဦး စွာ cache ကိုမတော်တဆဖျက်ခြင်းသို့မဟုတ်ပြုပြင်မွမ်းမံခြင်းမရှိသေးပါ။ လက်ရှိ Cache ၏အသေးစိတ်အချက်အလက်များကိုစစ်ဆေးရန်နှင့် cache status ကိုစစ်ဆေးရန် apc_cache_info () function ကိုသုံးပါ။
<span><span><span class="hljs-variable">$cache_info</span></span><span> = </span><span><span class="hljs-title function_ invoke__">apc_cache_info</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$cache_info</span></span><span>);
</span></span>ဤကုဒ်မှတဆင့် cache ကို cache ကို cache, cache ကိုကြည့်ရှုခြင်း, သူတို့၏အသက်ရှင်ခြင်းအချိန်, သက်တမ်းကုန်ဆုံးချိန်အထိကြည့်ရှုနိုင်လျှင်,
cache ကိုဖြတ်သန်းရန် apcucherator ကို အသုံးပြုသောအခါ Rewind မှရရှိသောရလဒ်သည်မှန်ကန်ကြောင်းသေချာစေရန်အတွက်ခြွင်းချက်စီရင်ချက်အချို့ကိုသင်ထည့်နိုင်သည်။ ဥပမာအားဖြင့် rewind () ကို မခေါ်မီ iTerator ၏အခြေအနေကိုစစ်ဆေးပါ။
<span><span><span class="hljs-variable">$iterator</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">APCUIterator</span></span><span>(</span><span><span class="hljs-string">'/^prefix/'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$iterator</span></span><span>-></span><span><span class="hljs-title function_ invoke__">valid</span></span><span>()) {
</span><span><span class="hljs-variable">$iterator</span></span><span>-></span><span><span class="hljs-title function_ invoke__">rewind</span></span><span>();
</span><span><span class="hljs-comment">// cache ပစ္စည်းများကိုဆက်လက်လုပ်ဆောင်ရန်ဆက်လက်</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">"အဆိုပါ iterator မမှန်ကန်ပါ,ဆက်လက်လည်ပတ်နိုင်ခြင်းမရှိပါ。"</span></span><span>;
}
</span></span>ဤနည်းအားဖြင့် Iterator ၏ကင်းလွဲမှုကြောင့်ဖြစ်ပေါ်လာသောကိုက်ညီမှုပြ problems နာများကိုရှောင်ရှားနိုင်သည်။
တစ်ပြိုင်နက်တည်းစစ်ဆင်ရေးများကြောင့်ဖြစ်သော cache ပြ problem နာတစ်ခုဖြစ်သည်ဟုသင်သံသယရှိပါက cache ကိုတစ်ပြိုင်နက်တည်းလည်ပတ်နေသည့်ချည်မျိုးစုံကိုရှောင်ရှားရန်သော့ခတ်ယန္တရားကိုသုံးနိုင်သည်။ PHP ကိုယ်တိုင်က Multi-Threading ကိုမပံ့ပိုးနိုင်ပါ။
<span><span><span class="hljs-variable">$lock</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">'/tmp/cache_lock'</span></span><span>, </span><span><span class="hljs-string">'r+'</span></span><span>);
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-title function_ invoke__">flock</span></span><span>(</span><span><span class="hljs-variable">$lock</span></span><span>, LOCK_EX)) {
</span><span><span class="hljs-comment">// ကရိယာတန်းဆာ APC cache စစ်ဆင်ရေး</span></span><span>
</span><span><span class="hljs-variable">$iterator</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title class_">APCUIterator</span></span><span>(</span><span><span class="hljs-string">'/^prefix/'</span></span><span>);
</span><span><span class="hljs-variable">$iterator</span></span><span>-></span><span><span class="hljs-title function_ invoke__">rewind</span></span><span>();
</span><span><span class="hljs-comment">// အခြားစစ်ဆင်ရေး</span></span><span>
</span><span><span class="hljs-title function_ invoke__">flock</span></span><span>(</span><span><span class="hljs-variable">$lock</span></span><span>, LOCK_UN); </span><span><span class="hljs-comment">// သော့ဖွင့်</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">"သော့ခတ်မရနိုင်ပါ,နောက်မှထပ်ကြိုးစားပါ。"</span></span><span>;
}
</span></span>သော့ခလောက်များထည့်ခြင်းအားဖြင့်လုပ်ငန်းစဉ်တစ်ခုသို့မဟုတ်ချည်သာလျှင်တစ်ချိန်တည်းတွင် cache ကိုတစ်ချိန်တည်းတွင် 0 င်ရောက်နိုင်ရန်သင်သေချာစေနိုင်သည်။
APC တိုးချဲ့မှု၏ configuration နှင့် version တို့နှင့်ပြ issues နာမရှိပါ။ APC ဗားရှင်းအချို့သည် cache ၏တည်ငြိမ်မှုကိုထိခိုက်စေနိုင်သည်။ Rewind နှင့်ဆက်စပ်သောလူသိများသောပြ issues နာများရှိမရှိအတည်ပြုရန် PHP အမှားမှတ်တမ်းသို့မဟုတ် APC တိုးချဲ့မှုအတွက်စာရွက်စာတမ်းများကိုသင်ကြည့်ရှုနိုင်သည်။
Phpinfo မှတစ်ဆင့်လက်ရှိ APC ၏ configuration အချက်အလက်များကိုကြည့်ပါ။
<span><span><span class="hljs-title function_ invoke__">phpinfo</span></span><span>();
</span></span>မည်သည့် cache နှင့်သက်ဆိုင်သော manctonfigurfigurations များကိုသင်ရှာဖွေပါက APC ချိန်ညှိချက်များကို PHP.ini configuration file ရှိ PHPP.ini configuration file ထဲတွင်ပြုပြင်ရန်ကြိုးစားပါသို့မဟုတ်နောက်ဆုံးပေါ်တည်ငြိမ်သောဗားရှင်းသို့အဆင့်မြှင့်တင်ပါ။
debugging စဉ်အတွင်းသစ်ထုတ်လုပ်ရေးအလွန်အရေးကြီးပါသည်။ Cache စစ်ဆင်ရေးနှင့်ကြားဖြတ်ပြုမူမှုကိုမှတ်တမ်းတင်ခြင်းအားဖြင့်ပြ the နာ၏အကြောင်းရင်းကိုပိုမိုနားလည်ရန်သင့်အားသင်ကူညီနိုင်သည်။
<span><span><span class="hljs-variable">$log_file</span></span><span> = </span><span><span class="hljs-string">'/var/log/apc_debug.log'</span></span><span>;
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$log_file</span></span><span>, </span><span><span class="hljs-string">"တယ်လီဖုန်းဆက်ခြင်း rewind() ရေှ့သို့: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$iterator</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>), FILE_APPEND);
</span><span><span class="hljs-variable">$iterator</span></span><span>-></span><span><span class="hljs-title function_ invoke__">rewind</span></span><span>();
</span><span><span class="hljs-title function_ invoke__">file_put_contents</span></span><span>(</span><span><span class="hljs-variable">$log_file</span></span><span>, </span><span><span class="hljs-string">"တယ်လီဖုန်းဆက်ခြင်း rewind() ပြန်.: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$iterator</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>), FILE_APPEND);
</span></span>Log ကိုဖိုင်တစ်ခုသို့မဟုတ်အခြားမှတ်တမ်းစနစ်သို့တင်ခြင်းသည်သင်ကြားဖြတ်သူသည်ပုံမှန်အားဖြင့်ပုံမှန်မဟုတ်ဘဲပုံမှန်မဟုတ်သော Cache စစ်ဆင်ရေးရှိ,
Debugging လုပ်ငန်းစဉ်တွင်ပြ troubl နာဖြေရှင်းခြင်းအားဖြင့် apcujuerator ၏ရှေ့နောက်စာပို့၏ပြ problem နာကိုဖြေရှင်းရန်အောက်ပါအစီအမံများကိုပြုလုပ်နိုင်သည်။ :: rewind ::
cache သို့ဇွဲရှိရှိထည့်ပါ, သိုလှောင်ထားသည့်အချက်အလက်များကိုကြားဖြတ်ကာလအတွင်းပြုပြင်မွမ်းမံခြင်းသို့မဟုတ်ဖျက်ခြင်းမခံရပါ။ အထူးသဖြင့်တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်း,
လုပ်ငန်းစဉ်အမျိုးမျိုးသို့မဟုတ်ဘက်စုံသောပတ် 0 န်းကျင်များအတွက် cache ကိုတစ်ချိန်တည်းပြုပြင်မွမ်းမံခြင်းမျိုးစုံကိုရှောင်ရှားရန် cache ကိုတစ်ပြိုင်တည်းလက်လှမ်းမီမှုမူဝါဒကိုအကောင်းဆုံးလုပ်နိုင်သည်။ cache စစ်ဆင်ရေး၏အမိန့်ကိုသော့ခတ်ထားသောယန္တရားများ,
cache update လုပ်ခြင်းယန္တရားသည်ကျိုးကြောင်းဆီလျော်ပြီးမကြာခဏ cache ရှင်းလင်းရေးလုပ်ငန်းများကိုရှောင်ရှားရန်သေချာစေပါ။ သက်တမ်းကုန်ဆုံးသောပစ္စည်းများကိုမိတ္တူကူးခြင်းမှရှောင်ရှားရန်လိုအပ်သော cache ၏သက်တမ်းကုန်ဆုံးချိန်ကိုချိန်ညှိနိုင်သည်။
APC ၏စွမ်းဆောင်ရည်နှင့်တည်ငြိမ်မှုသည်လိုအပ်ချက်များနှင့်မကိုက်ညီပါကအခြား cache စနစ်သို့ပြောင်းရွှေ့ရန်စဉ်းစားပါ။ ဥပမာအားဖြင့် Redis နှင့် Memcached သည် ပိုမိုပြည့်စုံသောစာရွက်စာတမ်းများနှင့်ရပ်ရွာလူထု၏ပံ့ပိုးမှုဖြင့်ကြီးမားသောတစ်ပြိုင်နက်တည်း,