【问题标题】:Redis Pubsub performance for remote clients远程客户端的 Redis Pubsub 性能
【发布时间】:2018-05-16 18:41:38
【问题描述】:

我正在构建一个使用 Redis 作为数据库的通知模型。每次添加到数据库中的特定键时,我都会使用 Redis 的 pubsub 功能以及基于 HTTP 的通知来通知远程客户端(用 Redis-py 编写)。

在运行性能测试时,比较 Redis PUBSUB 通知和 HTTP 响应之间的时间相当接近(redis 仍然比 HTTP 快几毫秒。示例。Redis 通知需要 47 毫秒,HTTP 通知需要 56 毫秒)。

我假设 Redis PUBSUB 会比 HTTP 快得多。这是通过 HTTP 的 redis 通知的预期性能吗?有没有更快的方式从 Redis db 推送通知(比 HTTP 更快)?

【问题讨论】:

  • 补充我的问题,我可以用 python 构建比 redis pubsub 更快的通知模型吗?

标签: python http testing redis notifications


【解决方案1】:

您对客户端实例的 ping 是多少?如果底层网络很慢,你无能为力。仅切换到 UDP 自定义协议。因为使用常规硬件,Redis PUBSUB 的预期性能约为 4k op/s。另外,您要传输的消息大小是多少?如果它很高,那么您也受制于您的网络速度。

【讨论】:

  • 我的消息是一个包含 4-5 个键和值的小字典对象。没什么复杂的。运行 redis 的客户端和服务器之间的 Ping 平均约为 4 毫秒。所以我的问题是,redis pubsub 的性能是否等同于 http?
  • 使用 4 毫秒的 ping,您不应获得 47 毫秒的交付。出了点问题。还有http。你确定你只衡量交付,而不是反序列化成本吗?
  • 没有。我在 HTTP POST 到数据库之前添加 time.time() 标记,并在收到来自 redis 数据库和 time.time() 的通知后立即测量 time.time()当我通过 http 收到回复。
  • 谁发送redis通知? HTTP 通知?全部都放在一台机器上吗?你能更清楚地发布你的设置吗?
  • 另外,redis-cli --latency -h host -p port 的输出是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-26
相关资源
最近更新 更多