验证使用Redis的PipeLine前后性能对比

PipeLine是什么

PipeLine就是把一组命令组装在一起发送给Redis服务端执行,然后一次性获得返回结果。(客户端也是通过一个队列把所有的命令缓存起来,然后把多个命令在一次连接中发送给服务器。)其实和SQL的批量操作类似。

PipeLine测试代码

首先下载一个redis,这个案例是Jedis的,需要引入pom依赖。

<dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>3.0.1</version>
    </dependency>
package com.redisdemo;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.Pipeline;

public class PipelineTest {
    
    
    public static void main(String[] args) {
    
    
       int num = 1000000;
        long start = System.currentTimeMillis();
       unPipeLine(num);
        long end = System.currentTimeMillis();
        System.out.println("没有使用Pipeline的执行时间: " + (end-start));

        start = System.currentTimeMillis();
        usePipeLine(num);
        end = System.currentTimeMillis();
        System.out.println("使用Pipeline的执行时间: " + (end-start));
    }

    /**
     * 没有使用PipeLine
     */
    public static void unPipeLine(int num){
    
    
        Jedis jedis = new Jedis("127.0.0.1",6379);
        for(int i = 0; i <= num;i++){
    
    
            jedis.set("unPipeLine:"+i,""+i);
        }
        jedis.disconnect();
    }

    /**
     * 使用PipeLine
     */
    public static void usePipeLine(int num){
    
    
        Jedis jedis = new Jedis("127.0.0.1",6379);
        Pipeline line = jedis.pipelined();
        for(int i = 0; i <= num;i++){
    
    
            line.set("usePipeLine:"+i,""+i);
        }
        line.sync();
        jedis.disconnect();
    }
}

执行结果

执行了100万次的结果
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/xiaowanzi_zj/article/details/121847335