redis学习笔记05-发布订阅模式
2024-09-06 00:21:01
由于redis消息队列并不支持多播机制,即生产者产出一次,由中间件复制发送给多个消费者的机制,为了弥补这个不足,单独引入了发布订阅模式的模块。使用方式如下:
#生产者
import redis
client = redis.StrictRedis()
client.publish('ll','pythonbooks come')
client.publish('ll','javabooks come')
client.publish('ll','gobooks come')
#消费者
import redis
client = redis.StrictRedis()
p = client.pubsub()
p.subscribe('ll')
for msg in p.listen():
print(msg)
使用时注意:
- 必须要先启动消费者,才能启动生产者。
- 消费者执行过程是阻塞的,会一直等待生产者的信息
- 可以一次订阅多个key,可以用
*
符号作为通配符
pubsub模式的缺点:
- 断开连接的消费者重新连接时收不到断开时间内的消息。
- 如果redis重新启动,pubsub消息无法持久化,相当于丢弃了所有消息。
而解决这个缺点就需要使用一种新的数据结构stream。
具体请转:
redis-stream详解:http://www.redis.cn/topics/streams-intro.html
最新文章
- SLES 10安装Oracle10gR2笔记
- thinkphp修改及编写标签库,编辑器的使用
- navicat----------局域网数据库:如何让navicat链接局域网其他的数据库。
- IP Failover Setup using Keepalived on CentOS/Redhat 6
- java系列: 对不起,JavaFX——Java 8目前还不能救你(zz)
- BZOJ 2435 道路修建 NOI2011 树形DP
- css里设置一个div在顶部固定,不随滚动条滚动而滚动
- POJ 2135 Farm Tour [最小费用最大流]
- 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。
- Convert Windows 32bit dirver to Windows 64bit
- TCP的状态
- node.js 基础知识之 querystring.stringify querystring.escape
- jQuery的一些基本的函数和用jQuery做一些动画操作
- 008_tcp探测
- Blender学习笔记
- v4l2框架
- struts2 升级至2.3.32时访问页面报错 File ";/struts-tags"; not found
- 获取进程ID,父进程ID,进程完整路径
- Subversion客户端接受服务器证书出现“The certificate hostname does not match”的问题
- ButterKnife RadioGroup选择事件