Redis(五)Pipeling

本文探讨了Redis中请求响应协议的基本概念,介绍了如何通过管道(Pipelining)技术优化客户端与服务端的交互效率,对比了管道与脚本在减少时间延迟方面的不同优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请求响应协议和RTT

Redis是使用TCP的客户端-服务端模式,叫做请求-响应协议。
例如


    Client: INCR X
    Server: 1
    Client: INCR X
    Server: 2
    Client: INCR X
    Server: 3
    Client: INCR X
    Server: 4

像这样需要请求-响应4个链路周期,每次Client发送一个Redis命令,然后Server响应结果,整个过期花费时间,叫做RTT(Round Trip Time),如果每个RTT需要250ms,则1s能发送 4个请求。

Pipelining

Client可以一次性发送多个命令给服务端,而不是等待Server返回结果再发送下一次命令,Server可以一次返回多个结果,这就是管道(Pipelining)。
使用管道处理上面的情况:


    Client: INCR X
    Client: INCR X
    Client: INCR X
    Client: INCR X
    Server: 1
    Server: 2
    Server: 3
    Server: 4

Client一次发送4个命令,Server处理完后一次返回4个结果。
当Client使用管道发送命令时,Server会强制使用内存队列保存命令的答复。

Pipelining VS Scripting

Redis除了有管道,还是可以使用脚本完成你的工作。脚本有一个好处,可以同时处理读和写从而减少时间延迟,而管道做不到这一点,在管道的模式下,Client必须等到Server的答复(比如读到结果返回),才能基于答复做下一步操作(比如写等操作)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值