【发布时间】:2018-12-10 12:23:35
【问题描述】:
我正在使用 Jedis 连接到 Redis 并将数据推送到列表中。我将 rpush 用于 JSON 数据。
这些是我做的步骤:
- 从 Rabbitmq 获取数据
- 从 JSON 数据中收集信息并准备键、值对
- 使用键和值将数据推送到redis。
我没有看到我的代码每秒扩展超过 3000 个请求。
注意:
我没有使用管道,每条消息都会导致获取jedis资源,将其添加到redis并关闭资源。
【问题讨论】:
-
我在我的代码中建立了一个缓存,来自rabbitmq的消息被缓存,如果缓存大小达到10k,那么我将数据异步添加到redis。现在可以看到每秒增加 5 到 6k 条消息
-
不同硬件和不同任务之间的性能差异很大。您的消息大小是多少?使用生菜,我可以很容易地在我的本地机器上获得 40k/s 的单线程和大约 120k 的 4 线程。您可能想知道的不是“绝地武士有多快”,而是“我在哪里花时间?”。为此使用 java 分析器。
-
我的消息是一个 json 有效负载,大约 500 个字符,并带有 RPUSH。
-
您将时间花在延迟上。您发送命令并等待结果。如果您将它们并行发送,您可以做很多很多。另外,试试生菜。它对流水线有很大帮助。