Redis 用 Stream 实现消息队列
redis 做消息队列对比
- redis:轻量级,低延迟,高并发,低可靠性;
- rabbitmq:重量级,高可靠,异步,不保证实时;
对于 RabbitMQ 和 Redis 的入队和出队操作,各执行 100 万次,每 10 万次记录一次执行时间。测试数据分为 128Bytes、512Bytes、1K 和 10K 四个不同大小的数据。实验表明:入队时,当数据比较小时 Redis 的性能要高于 RabbitMQ,而如果数据大小超过了 10K,Redis 则慢的无法忍受;出队时,无论数据大小,Redis 都表现出非常好的性能,而 RabbitMQ 的出队性能则远低于 Redis。
https://gitbook.cn/books/5c9db9d920a6bf15767eef6b/index.html
生产者
XADD key ID field string [field string ...]
ID 可以用 *, 会自动生成
python 库
https://charlesleifer.com/blog/redis-streams-with-python/
import redis
r = redis.Redis()
消费者组
在消费能力不足,也就是消息处理程序效率不高时,使用该模式
可以启动多个 python 进程来消费消息队列