Session_Register_shutdown () PHP မှပေးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်း၏ function သည် session accession_close () ကိုအလိုအလျောက်ခေါ်ဆိုရန် session datault သည်သိုလှောင်မှုအတွက်မှန်ကန်စွာရေးသားရန်သေချာစေရန်ပြီးစီးသောအခါ session_write_close () ကို အလိုအလျောက်ခေါ်ဆိုရန်ဖြစ်သည်။ Developerers များကိုအထူးသဖြင့်ရှုပ်ထွေးသောယုတ္တိဗေဒတွင်အထူးအစည်းအဝေးများဆုံးရှုံးခြင်းကိုကိုယ်တိုင်ကိုယ်ကျပိတ်ပစ်ရန်မေ့လျော့ခြင်းမှကာကွယ်ရန်မကြာခဏအသုံးပြုလေ့ရှိသည်။
ဥပမာအားဖြင့်:
<?php
session_start();
session_register_shutdown();
$_SESSION['user'] = 'alice';
// အခြားစီးပွားရေးယုတ္တိဗေဒ
Session_register_shutdown () ဟုခေါ်သည်နှင့်တစ်ပြိုင်နက် PHP သည် session_write_close_Close_Close () ကိုမပြဘဲ script ၏အဆုံးတွင်အလိုအလျှောက်ရေးရန်အလိုအလျောက်ရေးသားလိမ့်မည်။
session handler အဖြစ် redis ကိုအသုံးပြုခြင်း၏ကောင်းကျိုးများကိုအဓိကအားဖြင့်ထင်ဟပ်နေကြသည်:
မြန်နှုန်းမြင့်ဖတ်ရှုခြင်းနှင့်ရေးခြင်း - Redis သည်မှတ်ဥာဏ်အပေါ်အခြေခံပြီးရိုးရာဖိုင်စနစ်များထက်စာဖတ်ခြင်းနှင့်စာဖြင့်အမြန်နှုန်းများစွာရှိသည်။
ဇွဲရှိခြင်း - အချက်အလက်အလွယ်တကူမဆုံးရှုံးစေရန်သေချာစေရန်ဇွဲမဆိုယန္တရားကိုပြင်ဆင်နိုင်သည်။
ဖြန့်ဝေ extension : ဝက်ဘ်ဆာဗာများအပေါ် session တစ်ခုမျှဝေရန်သင့်လျော်သော။
အလိုအလျောက်သက်တမ်းကုန်ဆုံးခြင်း - Redis သည်သက်တမ်းကုန်ဆုံးသောအစည်းအဝေးများကိုအလိုအလျောက်သန့်ရှင်းစေနိုင်သည့် TTL ယန္တရားနှင့်ပါ 0 င်သည်။
Redis ကို PHP session handler အဖြစ် configure လုပ်ခြင်းသည်အလွန်ရိုးရှင်းပါသည်, Php.ini တွင်အောက်ပါအတိုင်းသတ်မှတ်ရန်လိုအပ်သည် -
session.save_handler = redis
session.save_path = "tcp://m66.net:6379"
သို့မဟုတ် dynamically code ထဲမှာထားရှိ:
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://m66.net:6379');
session_register_shutdown () Session Session Handler ကို သုံး. အဓိကအချက်မှာ session ၏အဆုံးမှာမည်သည့်လမ်းကြောင်းကိုမဆိုဤ session ကို redis ကိုပြန်လည်ရှင်သန်ရန်သေချာစေရန်ဖြစ်သည်။ ဘုံနားလည်မှုလွဲခြင်းဆိုသည်မှာ developer သည်ယုတ္တိဗေဒရှိတစ်နေရာရာတွင် ထွက်ပေါက်များက ကြိုတင်ပြင်ဆင်ခြင်းသို့မဟုတ်ခြွင်းချက်တစ်ခုအဖြစ်ချန်ထားခြင်းဖြစ်သည် ။ session_register_shutdown () ကို မှတ်ပုံတင်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် session အောင်မြင်စွာရေးသားထားသောအာမခံချက်ကိုတိုးမြှင့်နိုင်သည်။
ပြီးပြည့်စုံသောဥပမာမှာအောက်ပါအတိုင်းဖြစ်သည် -
<?php
// အသုံးပြု Redis ဖြစ်. Session Handler
ini_set('session.save_handler', 'redis');
ini_set('session.save_path', 'tcp://m66.net:6379');
session_start();
session_register_shutdown(); // စာရင်း shutdown ရေးသား session
try {
// အသုံးပြုသူ login ယုတ္တိဗေဒယူဆပါ
if (login_successful()) {
$_SESSION['user_id'] = get_user_id();
$_SESSION['last_login'] = time();
} else {
throw new Exception("Login failed");
}
// အခြားရှုပ်ထွေးသောစီးပွားရေးယုတ္တိဗေဒ
} catch (Exception $e) {
error_log($e->getMessage());
// အစီအစဉ်ကစောစောထတယ်,session_register_shutdown() အလိုအလျောက်ခလုတ် session ရေးသား
exit;
}
အထက်ဖော်ပြပါကုဒ်များတွင် ထွက်ပေါက် ဟုခေါ်သော်ငြားဆိုလျှင်ပင် session ရေးသားခြင်းကိုထိခိုက်လိမ့်မည်မဟုတ်ပါ။
မှတ်ဉာဏ်တွင်ကြာမြင့်စွာမှတ်ဉာဏ်ကိုစားသုံးရန် Session Data ပမာဏအမြောက်အများကိုကာကွယ်ရန်အတွက်ကြိုတင်ပြင်ဆင်မှုများကိုအကောင်အထည်ဖော်ရန်အတွက်ကျွန်ုပ်တို့လည်းအလိုအလျောက်သက်တမ်းကုန်ဆုံးချိန်ကိုသတ်မှတ်နိုင်သည်။
session.gc_maxlifetime = 1800 ; // 30မိနစ်
Redis သည်အချိန်ကုန်သော့ကိုအလိုအလျောက်ဖျက်လိမ့်မည်။ စွမ်းဆောင်ရည်မြင့်မားသောလက္ခဏာများဖြင့်၎င်းသည်အလုံးစုံစနစ်၏တည်ငြိမ်မှုနှင့်ထိန်းသိမ်းခြင်းကိုများစွာတိုးတက်စေနိုင်သည်။
Redis envent connection များကို Enable : မကြာခဏဆက်သွယ်မှုဖန်တီးမှု overhead ကိုရှောင်ကြဉ်ပါ။
Redis Cluster ကိုအသုံးပြုခြင်း - 0 န်ဆောင်မှုဟန်ချက်ညီစေရန်မြင့်မားသောတစ်ပြိုင်နက်တည်းစနစ်များရှိပြွတ်များကိုဖြန့်ဖြူးပါ။
သစ်ထုတ်လုပ်ခြင်းကိုဖွင့်ပါ
Session Lock ပိတ်ဆို့ခြင်းကိုရှောင်ပါ ။
session_register_shutdown () ကို redis session handler ဖြင့် အသုံးပြု. ကျွန်ုပ်တို့သည် session စီမံခန့်ခွဲမှုစနစ်ကိုထိရောက်စွာနှင့်ယုံကြည်စိတ်ချရသော session စီမံခန့်ခွဲမှုစနစ်ကိုတည်ဆောက်နိုင်သည်။ ယခင်က session ကိုထွက်ပေါက်လမ်းကြောင်းများအရစနစ်တကျသိမ်းဆည်းနိုင်ကြောင်း, ဤနှစ်ခုကိုဆင်ခြင်သုံးသပ်ခြင်းသည်လျှောက်လွှာ၏ကြံ့ခိုင်မှုနှင့်အတွေ့အကြုံများကိုအလွန်တိုးတက်စေလိမ့်မည်။