Rumah >pangkalan data >Redis >Nota kajian Redis menerbitkan dan melanggan

Nota kajian Redis menerbitkan dan melanggan

WBOY
WBOYke hadapan
2022-06-17 13:56:282019semak imbas

Artikel ini membawa anda pengetahuan yang berkaitan tentang Redis, yang terutamanya memperkenalkan isu yang berkaitan dengan menerbitkan dan melanggan Redis publish dan subscribe (pub/sub) ialah mod komunikasi mesej: hantar Penerbit (pub) menghantar mesej, dan pelanggan (sub) menerima mesej itu. Mari kita lihat.

Nota kajian Redis menerbitkan dan melanggan

Pembelajaran yang disyorkan: Tutorial video Redis

Terbit dan langgan Redis (pub/sub) ialah model komunikasi mesej : Pengirim (pub) menghantar mesej, dan pelanggan (sub) menerima mesej.

Pelanggan Redis boleh melanggan sebarang bilangan saluran.

Langgan/terbitkan graf mesej:

Objek pertama: penghantar mesej. Objek kedua: saluran. Objek ketiga: pelanggan mesej.

Nota kajian Redis menerbitkan dan melanggan

Rajah berikut menunjukkan hubungan antara saluran saluran1 dan tiga pelanggan yang melanggan saluran ini - klien2, klien5 dan pelanggan1:

Nota kajian Redis menerbitkan dan melanggan

Apabila mesej baharu dihantar ke saluran1 melalui arahan PUBLISH, mesej ini akan dihantar kepada tiga pelanggan yang melanggannya:

Nota kajian Redis menerbitkan dan melanggan

命令 描述
Publish channel message 命令 将信息发送到指定的频道。
SUBSCRIBE channel [channel …] 订阅给定的一个或多个频道的信息。
UNSUBSCRIBE channel [channel …] 指退订给定的频道。
[PUNSUBSCRIBE pattern [pattern …]] 退订所有给定模式的频道。
[PUBSUB argument [argument …] 查看订阅与发布系统状态。
PSUBSCRIBE pattern [pattern …] 订阅一个或多个符合给定模式的频道。

Ujian

Pelanggan:

127.0.0.1:6379> subscribe mianbao 			# 订阅频道 mianbao
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "mianbao"
3) (integer) 1
# 等待读取推送的消息
1) "message"		# 消息
2) "mianbao"		# 频道
3) "hello"			# 消息内容
1) "message"
2) "mianbao"
3) "hello redis"

Penghantar:

127.0.0.1:6379> publish mianbao "hello"			# 发送消息到频道		
(integer) 1
127.0.0.1:6379> publish mianbao "hello redis"
(integer) 1

Prinsip:

Redis Ia dilaksanakan dalam C . Dengan menganalisis fail pubsub.c dalam kod sumber Redis, kami boleh memahami pelaksanaan asas mekanisme penerbitan dan langganan, dan memperdalam pemahaman kami tentang Redis.

Redis melaksanakan fungsi penerbitan dan langganan melalui arahan seperti PENERBIT, LANGGAN dan PLANGGAN.

Selepas melanggan saluran melalui arahan LANGGANAN, kamus dikekalkan dalam pelayan redis Kekunci kamus adalah saluran, dan nilai kamus adalah senarai terpaut senarai terpaut. Kunci kepada arahan SUBSCRIBE adalah untuk menambah pelanggan ke senarai langganan saluran tertentu.

Hantar mesej kepada pelanggan melalui arahan PUBLISH Pelayan redis akan menggunakan saluran yang diberikan sebagai kunci, mencari senarai terpaut semua pelanggan yang melanggan saluran ini dalam kamus saluran yang diselenggarakannya, dan melintasi senarai terpaut ini, terbitkan mesej kepada semua pelanggan.

Pub/Sub secara literal bermaksud penerbitan (Terbitkan) dan langganan (Langganan Dalam Redis, anda boleh menyediakan penerbitan mesej dan langganan mesej untuk nilai kunci tertentu, Selepas mesej). diterbitkan, semua pelanggan yang melanggannya akan menerima mesej yang sepadan. Penggunaan paling jelas bagi fungsi ini adalah sebagai sistem pemesejan masa nyata, seperti sembang segera biasa, sembang kumpulan dan fungsi lain.


Untuk senario yang lebih kompleks, kami akan menggunakan perisian tengah mesej: RabbitMQ, RocketMQ, ActiveMQ, kafka

Pembelajaran yang disyorkan: Tutorial video Redis

Atas ialah kandungan terperinci Nota kajian Redis menerbitkan dan melanggan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:csdn.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam