我想使用管道来减少我的程序和redis-server之间的交互次数。
我可以在管道中设置许多命令,但我找不到任何描述可以在管道中设置的最大命令数的文档。
有什么建议吗?提前致谢。
最佳答案
不确定是否有最大值,但我不认为您希望达到最大值以防万一。
在大多数情况下,将管道大小限制为 100-1000 次操作可获得最佳结果。但是,您可以进行一些基准研究,其中包括您发送的典型请求。 流水线请求通常很好,但请记住,响应会保存在 Redis 内存中,直到所有流水线请求都得到服务,并且您的客户端会等待所有请求的长回复。
您应该尝试找到并发连接、流水线请求和 Redis 内存的最佳平衡点。
在管道的最后一个查询发送到 Redis 之前,您的客户端不会开始读取回复。当管道太长时,它有可能阻塞。
您可以使用 redis-benchmark或 memtier_benchmark . Here's有关 memtier_benchmark 的更详细描述和说明。
当您找到管道请求数和连接数时,您应该在您的应用程序中使用您的 redis-py 客户端实现它。
关于python - redis-py 管道可以有多少个命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27007530/