Redis管道

194 阅读1分钟

Redis是基于请求、响应协议的TCP服务。在客户端向服务端发送一个查询请求后,需要监听Socket的返回,该监听过程一直阻塞,直到服务器有结果返回。由于redis集群是部署在多个服务器上的,所以redis的请求响应模型在每次请求时都要跨网络在不同的服务器之间传输数据,这样每次查询都存在一定的网络延迟(服务器之间的网络延迟一般在20ms左右)。由于服务器一般采用多线程处理业务,并且内存操作效率很高,所以如果一次请求延迟20ms,则多次请求的网络延迟会不断增加。也就是说,在分布式环境下,Redis的性能瓶颈主要体现在网络延迟上。

Redis的管道技术指在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。管道技术能减少客户端和服务器交互的次数,将客户端的请求批量发送给服务器,**服务器针对批量请求分别查询并统一回复,能显著提高Redis的性能。**Redis管道模型的数据请求流程如下图: