English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

النشر والإشتراك في Redis

Redis pub/sub هو نموذج اتصال رسائل: يرسل المرسل (pub) الرسائل، يستقبل المشترك (sub) الرسائل.

يمكن للعملاء Redis الاشتراك في أي عدد من القنوات.

توضح الشكل التالي قناة channel1، وثلاثة عملاء مشتركين مشتركين في هذه القناة - client2، client5 وclient1 - والعلاقات بينهم:

عندما يتم إرسال رسالة جديدة عبر الأمر PUBLISH إلى قناة channel1، سيتم إرسال هذه الرسالة إلى ثلاثة عملاء مشتركين:

مثال على الإنترنت

يوضح هذا المثال كيف يعمل نشر الاشتراك، ويجب فتح تطبيقين من redis-cli.

في مثالنا هذا، قمنا بإنشاء قناة مشتركة تسمى w3codeboxChat:

العميل الأول (redis-cli)

redis 127.0.0.1:6379> SUBSCRIBE w3codeboxChat
قراءة الرسائل... (اضغط Ctrl-C للخروج)
1) "subscribe"
2) "redisChat"
3) (integer) 1

الآن، دعونا نفتح عميل Redis جديد، ثم ننشر رسالتين في نفس القناة w3codeboxChat، وسيتمكن المشترك من استقبال الرسائل.

العميل الثاني (redis-cli)

redis 127.0.0.1:6379> PUBLISH w3codeboxChat "Redis PUBLISH test"
(integer) 1
redis 127.0.0.1:6379> PUBLISH w3codeboxChat "تعلم Redis بواسطة oldtoolbag.com"
(integer) 1
# سيظهر على واجهة مستخدم عميل المشترك الرسالة التالية
 1) "message"
2) "w3codeboxChat"
3) "Redis PUBLISH test"
 1) "message"
2) "w3codeboxChat"
3) "تعلم Redis بواسطة oldtoolbag.com"

المسار كما يلي:

  • فتح خدمة Redis المحلية، افتح اثنين من تطبيقات redis-cli.

  • فيالعميل الأول (redis-cli)إدخال SUBSCRIBE w3codeboxChat، يعني الاشتراك في قناة w3codeboxChat.

  • فيالعميل الثاني (redis-cli)إدخال PUBLISH w3codeboxChat "Redis PUBLISH test" لإرسال رسالة إلى قناة w3codeboxChat، في هذه اللحظة سيرى العميل الأول (redis-cli) الرسالة الاختبارية التي أرسلتها العميل الثاني (redis-cli).

أمر Redis النشر والإشتراك

في الجدول أدناه، قائمة بأمر Redis النشر والإشتراك المستخدمة بشكل شائع:

الترتيبالأمر والوصف
1PSUBSCRIBE pattern [pattern ...]
اشتراك في قنوات تتوافق مع النمط المحدد.
2PUBSUB subcommand [argument [argument ...]]
عرض حالة النظام للنشر والإشتراك.
3PUBLISH channel message
إرسال معلومات إلى القناة المحددة.
4PUNSUBSCRIBE [pattern [pattern ...]]
إلغاء الاشتراك في جميع القنوات المحددة.
5SUBSCRIBE channel [channel ...]
اشتراك في معلومات القناة المحددة.
6UNSUBSCRIBE [channel [channel ...]]
إلغاء الاشتراك في القناة المحددة.