黄东旭解析 TiDB 的核心优势
808
2023-05-27
SpringBoot项目中Redis之管道技术
环境:springboot2.3.9.RELEASE + redis3.2.100
Redis是一种基于客户端-服务端模型以及请求/响应协议的TCP服务。这意味着通常情况下一个请求会遵循以下步骤:
客户端向服务端发送一个查询请求,并监听Socket返回,通常是以阻塞模式,等待服务端响应。服务端处理命令,并将结果返回给客户端。
Redis 管道技术
Redis 管道技术可以在服务端未响应时,客户端可以继续向服务端发送请求,并最终一次性读取所有服务端的响应。
Redis普通请求模型与管道请求模型对比
(普通请求模型)来源网络
RTT(Round-Trip Time),就是往返时延,在计算机网络中它是一个重要的性能指标,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认),总共经历的时延。
一般认为,单向时延 = 传输时延t1 + 传播时延t2 + 排队时延t3
(管道请求模型)来源网络
性能对比
依赖
配置文件
spring: redis: host: localhost port: 6379 password: ****** database: 4 lettuce: pool: maxActive: 8 maxIdle: 100 minIdle: 10 maxWait: -1
普通方法
@Resource private StringRedisTemplate stringRedisTemplate ; public void execNormal() { long start = System.currentTimeMillis() ; for (int i = 0; i < 100_000; i++) { stringRedisTemplate.opsForValue().set("k" + i, "v" + i) ; } System.out.println("耗时:" + (System.currentTimeMillis() - start) + " ms") ; }
测试结果
总耗时:47秒左右
管道技术
public void execPipeline() { long start = System.currentTimeMillis() ; stringRedisTemplate.executePipelined(new RedisCallback
测试结果
耗时:13秒左右
性能提升了3倍多。
完毕!!!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。