我想使用管道减少程序和Redis服务器之间的交互次数。
我可能在管道中设置了许多命令,但是找不到任何描述可以在管道中设置的最大命令数的文档。
有什么建议吗?提前致谢。
最佳答案
不确定是否有最大值,但我不认为要达到最大值。
在大多数情况下,将管道的大小限制为100-1000个操作可获得最佳效果。但是,您可以进行一些基准测试,其中包括您发送的典型请求。
管道请求通常是好的,但是请记住,响应将一直保存在Redis内存中,直到所有管道请求得到处理,并且客户端会等待所有请求的长回复。
您应该尝试找到并发连接,管道请求和Redis内存的最佳结合点。
在将管道的最后一个查询发送到Redis之前,您的客户端将不会开始阅读答复。当管道太长时,它有可能阻塞事物。
您可以使用redis-benchmark或memtier_benchmark。 Here's关于memtier_benchmark的更详细的描述和说明。
当找到管道请求和连接数时,应在应用程序中使用redis-py客户端实现它。