gpt4 book ai didi

python - 作为队列的 Redis - 批量检索

转载 作者:IT王子 更新时间:2023-10-29 06:10:05 25 4
gpt4 key购买 nike

我们的 Python 应用程序每天处理大约 200 万个 API 请求。我们的业务提出了一项新要求,即生成报告,其中应包含每天唯一请求和响应的计数。

  • 我们想使用 Redis 对所有请求和响应进行排队。
  • 另一个 worker 实例将从 Redis 队列中检索上述数据并进行处理。
  • 处理后的结果会持久化到数据库中。

最简单的选择是使用 LPUSH 和 RPOP。但是 RPOP 会一次返回一个值,这会影响性能。有没有什么办法可以从 Redis 批量弹出?

对于场景的其他建议将不胜感激。

最佳答案

一个简单的解决方案是使用 redis pipelining

在单个请求中,您将被允许执行多个 RPOP 指令。大多数 redis 驱动程序都支持它。在 python 中使用 Redis-py它看起来像这样:

pipe = r.pipeline()
# The following RPOP commands are buffered
pipe.rpop('requests')
pipe.rpop('requests')
pipe.rpop('requests')
pipe.rpop('requests')
# the EXECUTE call sends all buffered commands to the server, returning
# a list of responses, one for each command.
pipe.execute()

关于python - 作为队列的 Redis - 批量检索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26063297/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com