redisTemplate和JedisPool的效率对比

1:测试版本:腾讯云服务器
配置:1核 2GB 1Mbps

测试代码:
注:JedisPool的连接参数均使用默认配置

private final int num = 100000;
@Test
public void testRedisTemplate() throws IOException {

long time = 0;
for (int i = 0; i < num; i++) {
    // 1、推送
    long time1 = System.currentTimeMillis();
    redisTemplate.opsForValue().set(i+"",i+"");
    long time2 = System.currentTimeMillis();
    time += time2 - time1;
}
System.out.println("总时间:" + time);
//------------------------------------------------
@Test
public void testJedis2() throws IOException {

JedisPool jedisPool = new JedisPool(poolConfig,hostName,port,5000,password);

long time = 0;
for (int i = 0; i < num; i++) {
    try (Jedis jedis = jedisPool.getResource()) {
        // 1、推送
        long time1 = System.currentTimeMillis();
        jedis.set(i+"",i+"");
        long time2 = System.currentTimeMillis();
        time += time2 - time1;
    } catch (Exception e) {
        e.printStackTrace();
    }
}
System.out.println("总时间:" + time);

由于是在本机连着云服务器测得,所以主要时间基本会耗费在Tcp的连接上,看下结果:

单位(毫秒)

redisTemplate;
//10:总时间:1966
//100:总时间:4861
//500:30712
//5000:总时间:264042
//------------------------
JedisPool:
//10:总时间:308
//100:总时间:2412
//500:总时间:14388
//5000:总时间:134836

耗时基本都是按访问的倍数增长的,但是JedisPool稍微好点,因为本机测试redisTemplate到5000次的访问已经已经突破4分钟了,所以没有继续测,看下图形趋势:
redisTemplate和JedisPool的效率对比_第1张图片
测完服务器,来试一下本地的,在windows上直接启动redis服务,host设置为"127.0.0.1",再测:

单位(毫秒)

redisTemplate;
//本地-10:总时间:1506
//本地-100:总时间:1670
//本地-500:总时间:2178
//本地-5000:总时间:5964
//本地-50000:总时间:38045
//本地-100000:总时间:72839
//----------------------------------------
JedisPool:
//本地-10:总时间:6
//本地-100:总时间:25
//本地-500:总时间:92
//本地-5000:总时间:771
//本地-50000:总时间:7066
//本地-100000:总时间:13962

这结果简直是优秀啊,纵使redistTemplate再怎么坑比,但是5000次的耗时依然只有接近6秒,所以一直搞到了十万次,也才不过72秒而已,但是是按指数增长的,JedisPool这边就好多了,看下数据图:
redisTemplate和JedisPool的效率对比_第2张图片
这个主因是服务器的带宽太低了,另一个就是磁盘了,使用redis-benchmark测试一下:

redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush -n 10000 -q

低速服务器:
在这里插入图片描述
本地:
在这里插入图片描述
写入性能差了三倍,我本机内存是DDR4频率2666Mhz的,看这结果服务器配的应该连三代都不如,唉,一分钱一分货了

你可能感兴趣的:(redis)