东莞做网站排名优化推广,排名优化系统,手机商城网站案例,福州网站网站建设推荐链接#xff1a; 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoD… 推荐链接 总结——》【Java】 总结——》【Mysql】 总结——》【Redis】 总结——》【Kafka】 总结——》【Spring】 总结——》【SpringBoot】 总结——》【MyBatis、MyBatis-Plus】 总结——》【Linux】 总结——》【MongoDB】 总结——》【Elasticsearch】 文章名称 一、概念二、作用三、特点四、过程图1、没有使用Pipeline执行n条命令整个过程需要n次RTT2、使用Pipeline 执行了n条命令整个过程需要1次RTT 五、代码示例六、其它1、Pipeline组装的命令个数要有限制2、Pipeline只能操作一个Redis实例 参考链接Redis——》RTT 支持批量操作的命令mget、mset可以有效地节约RTT。不支持批量操作的命令执行n次 hgetall需要消耗n次RTT。 一、概念
Pipeline 流水线 Pipeline将一组 Redis命令进行组装通过一次RTT传输给Redis再将这组Redis命令的执行结果按顺序返回给客户端。
二、作用
有效地节约RTT往返时间。
三、特点
Pipeline执行速度一般比逐条执行要快。客户端和服务端的网络延时越大Pipeline的效果越明显。
四、过程图
1、没有使用Pipeline执行n条命令整个过程需要n次RTT 2、使用Pipeline 执行了n条命令整个过程需要1次RTT 五、代码示例 linux使用Pipeline机制redis-cli的–pipe选项 六、其它
1、Pipeline组装的命令个数要有限制 Q一次组装Pipeline数据量过大会有什么影响以及如何解决 A 影响一方面会增加客户端的等待时间另一方面会造成一定的网络阻塞。 解决将一次包含大量命令的Pipeline拆分成多次较小的Pipeline来完成。 方案1将Pipeline的总发送大小控制在内核输入输出缓冲区大小之内。 方案2控制在单个TCP 报文最大值1460字节之内。 Q内核输入输出缓冲区大小 A一般是4K-8K不同操作系统会不同当然也可以配置修改 Q单个TCP 报文最大值1460 AMTU Maximum Transmission Unit 最大传输单元在以太网中最大值是1500字节 因为IP头占20字节TCP头占20字节所以单个TCP 报文最大值是1460 2、Pipeline只能操作一个Redis实例
即使在分布式Redis场景中也可以作为批量操作的重要优化手段。