【问题标题】:Jedis Benchmarking - How fast is JedisJedis Benchmarking - Jedis 有多快
【发布时间】:2018-12-10 12:23:35
【问题描述】:

我正在使用 Jedis 连接到 Redis 并将数据推送到列表中。我将 rpush 用于 JSON 数据。

这些是我做的步骤:

  1. 从 Rabbitmq 获取数据
  2. 从 JSON 数据中收集信息并准备键、值对
  3. 使用键和值将数据推送到redis。

我没有看到我的代码每秒扩展超过 3000 个请求。

注意:

我没有使用管道,每条消息都会导致获取jedis资源,将其添加到redis并关闭资源。

【问题讨论】:

  • 我在我的代码中建立了一个缓存,来自rabbitmq的消息被缓存,如果缓存大小达到10k,那么我将数据异步添加到redis。现在可以看到每秒增加 5 到 6k 条消息
  • 不同硬件和不同任务之间的性能差异很大。您的消息大小是多少?使用生菜,我可以很容易地在我的本地机器上获得 40k/s 的单线程和大约 120k 的 4 线程。您可能想知道的不是“绝地武士有多快”,而是“我在哪里花时间?”。为此使用 java 分析器。
  • 我的消息是一个 json 有效负载,大约 500 个字符,并带有 RPUSH。
  • 您将时间花在延迟上。您发送命令并等待结果。如果您将它们并行发送,您可以做很多很多。另外,试试生菜。它对流水线有很大帮助。

标签: redis jedis


【解决方案1】:

在 Redis 中保持更快的选项是

  1. 流水线
  2. Jedis 连接池

要避免: 3. 不频繁打开/关闭资源,即打开一个资源并重用它

好链接: https://tech.trivago.com/2017/01/25/learn-redis-the-hard-way-in-production/

我是如何解决我的问题的: 我的设计非常好。但是我在所有测试中都将数据推送到同一个键中。当我开始将数据推送到不同的键时,性能大幅提升。

【讨论】:

    猜你喜欢
    • 2018-09-06
    • 1970-01-01
    • 2022-10-01
    • 2014-08-16
    • 2023-03-20
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多