怎么用redis+python做消息队列
发表于:2024-11-25 作者:千家信息网编辑
千家信息网最后更新 2024年11月25日,这篇文章主要讲解了"怎么用redis+python做消息队列",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用redis+python做消息队列"吧
千家信息网最后更新 2024年11月25日怎么用redis+python做消息队列
这篇文章主要讲解了"怎么用redis+python做消息队列",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"怎么用redis+python做消息队列"吧!
一、使用redis的List类型结合lpush 和 brpop 来实现
简介
首先redis的List 相当于一个队列,可以实现先进先出的规则
采用brpop 是因为当队列中没有的时候会进行阻塞,直到队列中有可弹出元素或者等待超时
模拟问题:
访问太多,服务器处理速度太慢,如果每隔用户等待,服务器反馈的话,时间太长,http连接超时,出现服务器错误。
模拟实现过程:
有一个客户端不断的往队列里放东西(数据),采用多线程,模拟大量用户访问的情况
有一个服务器不断的从队列中取出打印,并设置每次打印时间睡2秒
redis的List结构介绍
key [value, value]key 代表List的名字, [value, ...] 是值
客户client.py
import randomimport threadingimport redisimport configlock = 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.py
import redisimport timeimport configpool = 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)
问题回顾
我们之前说存在阻塞太久断开连接的问题,解决下
方式: 将连接作为一个函数,进行错误捕捉,发生问题的时候重新连接。
import redisimport timeimport configdef get_redis(): pool = redis.ConnectionPool(host=config.HOST, port=config.PORT, decode_responses=True, password=config.PASSWORD) r = redis.Redis(connection_pool=pool) return r# 服务端不断的取r = get_redis() while True: try: value = r.brpop("print") time.sleep(2) print(value) except Exception as e: print("等待超时重连") r = get_redis()
感谢各位的阅读,以上就是"怎么用redis+python做消息队列"的内容了,经过本文的学习后,相信大家对怎么用redis+python做消息队列这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
队列
服务
服务器
问题
消息
不断
客户
数据
学习
内容
情况
时候
时间
用户
错误
阻塞
东西
中放
代表
元素
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
ip访问服务器很慢
深圳软件开发者攻略
方舟专用多人服务器
与数字化数据库是什么
ip服务器哪款好
默纳克服务器刷协议软件
验票服务器
数据库连接三个表 该
移动互联网应用软件开发百度
怎么租服务器抢东西
公安网络安全意识教育123
高级软件开发专家电话
网络安全防护工作自查报告
开展网络安全保障
幼儿园网络安全和信息化工作计划
数据库系统的代表产品
一个FTP服务器部署多少钱
个人电脑做服务器远程管理
公共安全视频联网的网络安全
数据库外键约束有什么用
网络安全手抄报漂亮复杂
用win7系统建文件服务器
小学生 网络安全宣传单
怎么查看阿里云服务器的配置
JAVA版mc加入服务器
数据库表结构设计读写分离
杨浦区第三方软件开发质量保证
中央网络安全日成立
数据库附加不上
日常服务器管理