Rumah >pangkalan data >Redis >Bagaimana untuk melaksanakan langganan dan penerbitan Redis menggunakan mekanisme sub-pub dalam python

Bagaimana untuk melaksanakan langganan dan penerbitan Redis menggunakan mekanisme sub-pub dalam python

王林
王林ke hadapan
2023-05-26 18:55:28948semak imbas

Mula-mula perkenalkan fungsi pub/sub redis:

Ciri Pub/Sub, yang bermaksud Terbitkan dan Langgan, merujuk kepada fungsi penerbitan dan melanggan. Dalam sistem berasaskan acara, Pub/Sub pada masa ini merupakan model komunikasi yang digunakan secara meluas Ia menggunakan acara sebagai mekanisme komunikasi asas untuk menyediakan model interaksi berganding longgar yang diperlukan oleh sistem berskala besar: pelanggan (seperti pelanggan) melanggan acara kaedah menyatakan acara atau jenis acara yang ia berminat untuk menerima penerbit (seperti pelayan) boleh memberitahu pelanggan yang berkaitan pada bila-bila masa acara yang pelanggan berminat.

Dalam istilah orang awam, ini bermakna sub-side (pelanggan) saya sentiasa mendengar Apabila pihak pub (penerbit) menerbitkan mesej, maka saya akan menerimanya sebagai contoh, penerbit terlebih dahulu:

#coding:utf-8
import time
import redis
 
number_list = ['300033', '300032', '300031', '300030']
signal = ['1', '-1', '1', '-1']
 
rc = redis.StrictRedis(host='***', port='6379', db=3, password='********')
for i in range(len(number_list)):
    value_new = str(number_list[i]) + ' ' + str(signal[i])
    rc.publish("liao", value_new)  #发布消息到liao

Kemudian mari kita lihat pelanggan:

#coding:utf-8
import time
import redis
 
rc = redis.StrictRedis(host='****', port='6379', db=3, password='******')
ps = rc.pubsub()
ps.subscribe('liao')  #从liao订阅消息
for item in ps.listen():        #监听状态:有消息发布了就拿过来
    if item['type'] == 'message':
        print item['channel']
        print item['data']

Mengenai struktur data, iaitu item, ia serupa dengan: {'pattern': None, 'type': 'message ', 'channel' : 'liao', 'data': '300033 1'}, jadi anda boleh menggunakan saluran untuk menentukan baris gilir mesej itu. (Apabila menjalankan program, jalankan pelanggan dahulu, dan kemudian jalankan program penerbit)

Untuk meringkaskan, terdapat dua perkara utama:

  • Yang pertama ialah sambungan kaedah. Terdapat tiga cara untuk menggunakan python untuk menyambung ke redis: ① Gunakan kelas Redis dalam perpustakaan (atau kelas StrictRedis, yang hampir sama ② Gunakan kolam sambungan ConnectionPool (yang boleh mengekalkan sambungan yang panjang); Kelas Sentinel (jika terdapat berbilang kelompok redis, Program akan memilih sambungan yang sesuai itu sendiri).

  • Yang kedua ialah kaedah langganan. Kaedah pubsub dalam kelas StrictRedis digunakan di sini. Cara untuk melanggan mesej redis adalah dengan menggunakan kaedah langgan atau planggan, yang bermula selepas sambungan berjaya. Jika melanggan adalah untuk melanggan satu saluran, planggan boleh melanggan berbilang saluran (apabila ditulis seperti ini, saluran sebagai parameter haruslah senarai). Kemudian anda boleh mula memantau.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan langganan dan penerbitan Redis menggunakan mekanisme sub-pub dalam python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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