验证使用Redis的PipeLine前后性能对比
Posted 泡^泡
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了验证使用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万次的结果
以上是关于验证使用Redis的PipeLine前后性能对比的主要内容,如果未能解决你的问题,请参考以下文章
redis使用管道pipeline提升批量操作性能(php演示)