redis piplined批量操作性能对比

2021年4月25日 5点热度 0条评论 来源: AscendKing

@Test

public void testPipLine(){

//根据hashKey依次获取所有value

List<Object> executeResult = redisTemplate.executePipelined(new RedisCallback<Object>() {

@Override

public Object doInRedis(RedisConnection connection) throws DataAccessException {

//业务操作

for (int i = 0; i < 5; i++) {

connection.del(("key"+i).getBytes());

}

 

return null;

}

 

 

 

 

});

for (int i = 0; i < executeResult.size(); i++) {

Object o = executeResult.get(i);

System.out.println("o:"+o);

 

}

 

}

 

测试结果:

删除测试

1-1.删除50万条数据,pipline耗时8s,一个一个删除耗时23秒

1-2.删除100万条数据,pipline耗时12s,一个一个删除耗时44秒

1-3.删除200万条数据,pipline耗时25s,一个一个删除耗时92秒

1-4.删除300万条数据,pipline耗时37s,一个一个删除耗时167秒

 

插入测试

1-1.插入50万条数据,pipline耗时7s,一个一个插入耗时23秒

1-2.插入100万条数据,pipline耗时12s,一个一个插入耗时44秒

1-3.插入200万条数据,pipline耗时28s,数据待更新

1-4.插入300万条数据,pipline耗时46s,数据待更新

 

从结果来看piplined耗时是单个插入或者删除的1/4到1/3

 

    原文作者:AscendKing
    原文地址: https://blog.csdn.net/wangwenzhe222/article/details/105019529
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。