Pertama sekali, Senarai redis adalah bersamaan dengan baris gilir , yang boleh melaksanakan masuk dahulu, keluar dahulu Peraturan
menggunakan brpop kerana apabila tiada apa-apa dalam baris gilir, ia akan menyekat sehingga terdapat elemen popable dalam baris gilir atau masa tunggu habis
Terdapat terlalu banyak akses dan kelajuan pemprosesan pelayan terlalu perlahan Jika pelayan memberi maklum balas selepas itu menunggu setiap pengguna, masa terlalu lama, sambungan http tamat, dan ralat pelayan berlaku.
Terdapat pelanggan yang sentiasa meletakkan sesuatu (data) ke dalam baris gilir, menggunakan multi-threading untuk mensimulasikan bilangan pengguna yang besar Situasi akses
Terdapat pelayan yang terus mengeluarkan cetakan daripada baris gilir dan menetapkan masa tidur untuk setiap cetakan kepada 2 saat
key [value, value] key 代表List的名字, [value, ...] 是值
Client client.py
import random import threading import redis import config lock = threading.Lock() lock.acquire() lock.release() pool = redis.ConnectionPool(host=config.HOST, port=config.PORT, decode_responses=True, password=config.PASSWORD) r = redis.Redis(connection_pool=pool) # 客户往redis 中放数据 def fun1(redisObj): value = random.randint(0, 100) # 往ccc列表中存放 print("开始发送数据:", value) redisObj.lpush("print",str(value)) for i in range(100): threading.Thread(target=fun1, args=(r,)).start()
Server server.py
import redis import time import config pool = redis.ConnectionPool(host=config.HOST, port=config.PORT, decode_responses=True, password=config.PASSWORD) r = redis.Redis(connection_pool=pool) # 服务端不断的取 while True: value = r.brpop("print") time.sleep(2) print(value)
: merawat sambungan sebagai fungsi, menangkap ralat dan menyambung semula apabila masalah berlaku.
rreeeeAtas ialah kandungan terperinci Cara menggunakan redis+python sebagai baris gilir mesej. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!