什么是流水线
流水线:将批量命令打包
N个命令操作:N次网络时间+N次命令时间
1次pipeline:1次网络时间+N次命令时间
注意:Redis的命令时间是微秒级别;pipeline每次条数要控制
客户端实现:
未使用pipeline:
for(int i = 0; i < 10000;i++){
jedis.hset("hashkey"+i,"field"+i,"value"+i);
}
使用pipeline:
for(int i = 0; i < 100;i++){
Pipeline pipeline = jedis.pipelined();
for(int j = i*100; j<(i+1)*100;j++){
pipeline.hset("hashkey"+j,"field"+j,"value"+j);
}
pipeline.syncAndReturnAll();
}
使用建议:注意每次pipeline携带数据量;pipeline每次只能作用在一个Redis节点上
|
|