Redis 队列架构

问题描述 投票:0回答:2

我们如何分配 Redis 队列以并行执行作业?我们可以在单个 Redis 队列中放置不同的队列吗?

我正在做一个聊天应用,我想彻底减少延迟时间。如果假设有更多人在同一时间戳发送消息,那么 redis 队列中就会有更多消息。有办法处理吗? 我正在使用 redis 进行内存数据发送。

parallel-processing redis node-redis
2个回答
1
投票

Redis 是单线程的。因此,不能并行处理任何项目。这并不像一开始听起来那么糟糕,因为 Redis 可以非常快地处理这些小操作(有关它有多快的更多详细信息,请参阅http://redis.io/topics/benchmarks

有序列表只能处理具有唯一分数的项目。所以使用有序列表可能不是一个好主意。但是你可以使用像这样的普通列表:

  1. 存储新消息 LPUSH 聊天记录消息1
  2. 商店消息信息

HMSET 消息 1

time 1234 用户 Adam 消息 hi receiver Eve 3. 检索最近的消息密钥 RPOP 聊天记录


0
投票

实际上,您应该为处理队列的工作人员分配更多的处理器单元。根据 pyton-rq 的文档,这是一个常规模式,您可以使用 supervisor 完成它。

© www.soinside.com 2019 - 2024. All rights reserved.