JAVA全系列 教程
3762个小节阅读:7095.2k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
经历了1次时间 = 1次网络时间 + 1次命令时间。
经历了 n次时间 = n次网络时间 + n次命令时间
经历了 1次pipeline(n条命令) = 1次网络时间 + n次命令时间,这大大减少了网络时间的开销,这就是流水线。
从北京到上海的一条命令的生命周期有多长?
执行一条命令在redis端可能需要几百微秒,而在网络光纤中传输只花费了13毫秒。
注意:
在执行批量操作而没有使用pipeline功能,会将大量的时间耗费在每一次网络传输的过程上;而使用pipeline后,只需要经过一次网络传输,然后批量在redis端进行命令操作。这会大大提高了效率。
xxxxxxxxxx
for (int i = 0; i < 10000; i++) {
redisTemplate.opsForHash().put("hashkey:" + i, "field" + i, "value" + i);
}
注意:
在不使用pipeline的情况下,使用for循环进行每次一条命令的执行操作,耗费的时间可能达到 1w 条插入命令的耗时为50s。
xxxxxxxxxx
redisTemplate.execute(new RedisCallback<Long>() {
@Nullable
@Override
public Long doInRedis(RedisConnection connection) throws DataAccessException {
connection.openPipeline();
for (int i = 0; i < 10000; i++) {
connection.hSet(("hashkey:" + i).getBytes(), ("field" + i).getBytes(), ("value" + i).getBytes());
}
List<Object> result = connection.closePipeline();
return null;
}
});
1. Redis技术中Pipeline主要作用是。
A 提高消息传递速度
B 加快命令的执行速度
C 网络中传递的命令的安全性
D 减少了网络时间的开销
1=>D