我们知道Redis存在客户端和服务端,那么客户端和服务端是怎么通信的呢?
首先我们要知道Redis是通过Redis协议(RESP)进行通信的,而Redis协议位于TCP协议之上,客户端与服务端保持双工连接。简单来说就是客户端和服务端可以双向通信,客户端收发消息,服务端收发消息。
ping-pong请求响应模式
谈到双工请求之前,需要谈到普通的请求响应模式。客户端发送一个ping请求,服务端回应一个pong响应。客户端收到pong请求后,才会发起第二个ping请求。这个也叫做ping-pong请求响应模式。相当于就是串行的请求,好像加了一把锁似的,让大家排队一个一个进行。
双工请求响应模式
普通的ping-pong需要排队,效率特别低,我们就想同时多发几个请求,并且以最快的速度返回。这时候就使用双工请求,同时发送一批请求,服务端也批量响应。
这种模式是将一批命令打包发给服务端,服务端执行完按照顺序打包返回。大大地提升了性能。这个也叫做pipl