လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Redis မက်ဆေ့ခ်ျများကိုစဉ်ဆက်မပြတ်နားထောင်ရန်နှင့်၎င်းတို့ကိုမည်သို့လုပ်ဆောင်ရမည်နည်း။

Redis မက်ဆေ့ခ်ျများကိုစဉ်ဆက်မပြတ်နားထောင်ရန်နှင့်၎င်းတို့ကိုမည်သို့လုပ်ဆောင်ရမည်နည်း။

gitbox 2025-06-17

Redis မက်ဆေ့ခ်ျကို subscription နှင့်ထုတ်ဝြေခင်း

Redis သည်ပွင့်လင်းသောအရင်းအမြစ်မှတ်ဉာဏ်ဒေတာတည်ဆောက်ပုံသိုလှောင်မှုစနစ်ဖြစ်သည်။ ၎င်းသည် strings, hash များ, စာရင်းများ, ဤဆောင်းပါးသည် PHP ရှိ Redis မက်ဆေ့ခ်ျများစာရင်းနှင့်စဉ်ဆက်မပြတ်နားထောင်ခြင်းကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

Redis extension package ကို install လုပ်ပါ

Redis extension ကိုမစတင်မီ၎င်းကိုသင်ပထမ ဦး စွာ install လုပ်ရန်လိုအပ်သည်။ ၎င်းကို pecl command မှတဆင့် install လုပ်နိုင်ပြီးအောက်ပါ command ကို execute လုပ်နိုင်သည်။

 pecl install redis

သင်၏ system တွင် pecl installed မရှိပါက၎င်းကိုအောက်ပါ command မှတဆင့် install လုပ်နိုင်သည်။

 sudo apt-get install php-pear

redis ကိုဆက်သွယ်ပါ

Redis extension package ကို install လုပ်ပြီးနောက်နောက်အဆင့်မှာ Redis ဆာဗာနှင့်ချိတ်ဆက်ရန်ဖြစ်သည်။ ဆက်သွယ်မှုတစ်ခုတည်ဆောက်ရန် Redis အတန်းရှိ Connect နည်းလမ်းကိုသုံးပါ။ Code pegager ်ဌာန်းချက်မှာအောက်ပါအတိုင်းဖြစ်သည် -

 $redis = new Redis();
$redis->connect('127.0.0.1', 6379);
echo 'redis connected';

အထက်ပါကုဒ်တွင် Connect နည်းလမ်း၏ပထမဆုံး pareter သည် Redis ဆာဗာ၏အိုင်ပီလိပ်စာဖြစ်သည်။ ဒုတိယ parameter သည် port နံပါတ်ဖြစ်သည်။ ဆက်သွယ်မှုအောင်မြင်ပြီးနောက်ပရိုဂရမ်သည် "redis ချိတ်ဆက်ထားသော" မက်ဆေ့ခ်ျကိုထုတ်ပေးလိမ့်မည်။

မက်ဆေ့ခ်ျကို subscription နှင့် processing

Redis ကိုအောင်မြင်စွာဆက်သွယ်ပြီးနောက်တွင်သင်သည်မက်ဆေ့ခ်ျကိုရုပ်သံလိုင်းသို့စတင်စာရင်းသွင်းခြင်းနှင့်သတင်းစကားကိုပြုပြင်နိုင်သည်။ Redis သည် Subscribe နှင့် Psubscribe နည်းလမ်းများစာရင်းသွင်းရန်ထောက်ပံ့ပေးသည်။

အောက်တွင်ဖော်ပြထားသည့်အတိုင်းစာရင်းတစ်ခုသို့မဟုတ်တစ်ခုထက်ပိုသောသတ်မှတ်ထားသောလိုင်းများကိုစာရင်းသွင်းထားသည့်စာရင်းပေးသွင်းပါ။

 $redis->subscribe(array('channel1', 'channel2'), function($redis, $channel, $message) {
    echo "Received message from channel: {$channel}, message: {$message}\n";
});

အထက်ဖော်ပြပါကုဒ်များတွင်ပထမဆုံးစာရင်းသွင်းသည့်နည်းလမ်း၏ပထမဆုံး pareter သည် channel array ဖြစ်ပြီးဒုတိယ parameter သည် callback function တစ်ခုဖြစ်သည်။ မက်ဆေ့ခ်ျကိုလက်ခံရရှိပြီးနောက် callback function ကိုကွပ်မျက်ခံရလိမ့်မည်။

PSUBSCRIBE Method သည် Wildcard အက္ခရာများကို အသုံးပြု. Charge Validels မျိုးစုံကိုရယူရန်အတွက်ဥပမာအားဖြင့်အောက်ပါအတိုင်းဖြစ်သည် -

 $redis->psubscribe(array('channel.*'), function($redis, $channel, $message) {
    echo "Received message from channel: {$channel}, message: {$message}\n";
});

အထက်ပါကုဒ်သည် 'Channel ဖြင့်စတင်သောချန်နယ်အားလုံးကိုစာရင်းသွင်းခြင်းကိုဆိုလိုသည်။

Redis မက်ဆေ့ခ်ျများကိုစဉ်ဆက်မပြတ်နားထောင်ခြင်းနှင့်စာရင်းသွင်းခြင်းနှင့်၎င်းတို့ကိုလုပ်ဆောင်ပါ

ပရိုဂရမ်ကိုအစဉ်မပြတ်မက်ဆေ့ခ်ျများကိုအစဉ်အမြဲနားထောင်ရန်နှင့်အချိန်မှန်များကိုဆက်လုပ်ရန်နှင့်၎င်းတို့အားအချိန်မှန်ဖြစ်စဉ်ကိုအစဉ်အလာစွာနားထောင်နိုင်ရန်အတွက် loop ကိုမက်ဆေ့ခ်ျများကိုစဉ်ဆက်မပြတ်နားထောင်ရန်အသုံးပြုနိုင်သည်။ ဒီ function ကိုအကောင်အထည်ဖော်ရန်ကုဒ်သည်။

 $redis->subscribe(array('channel'), function($redis, $channel, $message) {
    echo "Received message from channel: {$channel}, message: {$message}\n";
    // လက်ခံရရှိမက်ဆေ့ခ်ျကိုထုတ်ယူခြင်း
});
while(true) {
    $redis->ping();
    sleep(1);
}

ဤကုဒ်တွင်ကွင်းဆက်ဆက်သွယ်မှုသည် ping method ကိုပုံမှန်အတိုင်းအိပ်နေပြီးတစ်စက္ကန့်အိပ်စက်ခြင်းရှိမရှိကိုစဉ်ဆက်မပြတ်စစ်ဆေးစဉ်။

ကုဒ်ကိုအပြည့်အဝ

Redis Message Subscription နှင့်စဉ်ဆက်မပြတ်နားထောင်ခြင်းကိုအကောင်အထည်ဖော်ရန်အတွက် PHP Code PegaSery:

 
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
$redis->subscribe(array('channel'), function($redis, $channel, $message) {
    echo "Received message from channel: {$channel}, message: {$message}\n";
    // လက်ခံရရှိမက်ဆေ့ခ်ျကိုထုတ်ယူခြင်း
});
while(true) {
    $redis->ping();
    sleep(1);
}

အကျဉ်းချုပ်

ဤဆောင်းပါးမှတစ်ဆင့် PHP ရှိ Redis extension package ကို Subscription နှင့် Redis မက်ဆေ့ခ်ျများကိုစဉ်ဆက်မပြတ်နားထောင်ရန်မည်သို့အသုံးပြုရမည်ကိုလေ့လာသင်ယူခဲ့သည်။ Subscribe နှင့် PSUBSCRICE နည်းများကို Subsubscribe နည်းလမ်းများနှင့် PSUBSCRIBE နည်းများကိုမည်သို့အသုံးပြုရမည်ကိုဖော်ပြရန် Loop ကို သုံး. လက်ခံရရှိသည့်မက်ဆေ့ခ်ျများအားအမှန်တကယ်အချိန်နှင့်တပြေးညီပြုလုပ်ရန်သေချာစေရန် loop ကိုအသုံးပြုပါ။