4

I want to use pipeline to reduce the number of interaction between my program and redis-server.
I may set many commands in pipeline but I couldn't find any document describing the max number of commands that could be set in pipeline.

Is there any advice? Thanks in advance.

4

1 回答 1

10

不确定是否有最大值,但我不认为你想达到它以防万一。

在大多数情况下,将管道的大小限制为 100-1000 次操作可以获得最佳结果。但是,您可以进行一些基准研究,其中包括您发送的典型请求。流水线请求通常很好,但请记住,响应会保存在 Redis 内存中,直到所有流水线请求都得到处理,并且您的客户端会等待所有请求的长回复。

您应该尝试找到并发连接、流水线请求和 Redis 内存的最佳点。

在您的管道的最后一个查询发送到 Redis 之前,您的客户端不会开始阅读回复。当管道太长时,它有可能阻塞东西。

您可以使用redis-benchmarkmemtier_benchmark这是关于 memtier_benchmark 的更详细的描述和说明。

当您找到流水线请求的数量和连接数时,您应该在您的应用程序中使用您的 redis-py 客户端来实现它。

于 2014-11-19T09:07:12.350 回答