redis 流水线
作用:批量发送命令,较一条一条发送命令节省网络传输时间
**********************
使用示例
HelloController
@RestController
public class HelloController {
@Autowired
private StringRedisTemplate redisTemplate;
@RequestMapping("/hello")
public String hello(){
long start=System.currentTimeMillis();
System.out.println("开始时间:"+start);
redisTemplate.executePipelined(new SessionCallback<Object>() {
public Object execute(RedisOperations redisOperations) throws DataAccessException {
for(int i=0;i<10000;i++){
redisOperations.opsForValue().set("瓜田李下"+i,i+"");
}
return null;
}
});
long end=System.currentTimeMillis();
System.out.println("结束时间:"+end);
System.out.println("花费时间:"+(end-start));
return "花费时间:"+(end-start);
}
@RequestMapping("/hello2")
public String hello2(){
long start=System.currentTimeMillis();
System.out.println("开始时间:"+start);
for (int i=0;i<10000;i++){
redisTemplate.opsForValue().set("海贼王"+i,i+"");
}
long end=System.currentTimeMillis();
System.out.println("结束时间:"+end);
System.out.println("花费时间:"+(end-start));
return "花费时间:"+(end-start);
}
}
******************
控制台输出
开始时间:1570067655395
结束时间:1570067657005
花费时间:1610
开始时间:1570067688485
结束时间:1570067694345
花费时间:5860
pipeline时间消耗:1610ms
单条发送时间消耗:5860ms