Redis pipeline在java中的运用

我们可以利用pipeline的方式从client打包多条命令一起发出,不需要等待单条命令的响应返回,而redis服务端会处理完多条命令后会将多条命令的处理结果打包到一起返回给客户端。

通过pipeline方式当有大批量的操作时候。我们可以节省很多原来浪费在网络延迟的时间。需要注意到是用 pipeline方式打包命令发送,redis必须在处理完所有命令前先缓存起所有命令的处理结果。打包的命令越多,缓存消耗内存也越多。所以并是不是打包的命令越多越好。具体代码如下:

package com.jd.redis.client;

 

import redis.clients.jedis.Jedis;

import redis.clients.jedis.Pipeline;

 

publicclass PipelineTest {

 

    /**

     * @param args

     */

    publicstaticvoid main(String[] args) {

       

        int count = 1000;

       

        long start = System.currentTimeMillis();

        withoutPipeline(count);

        long end = System.currentTimeMillis();

        System.out.println("withoutPipeline: " + (end-start));

       

        start = System.currentTimeMillis();

        usePipeline(count);

        end = System.currentTimeMillis();

        System.out.println("usePipeline: " + (end-start));

       

    }

 

    privatestaticvoid withoutPipeline(int count){

        Jedis jr = null;

        try {

            jr = new Jedis("10.10.224.44", 6379);

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

                jr.incr("testKey1");

            }

        } catch (Exception e) {

            e.printStackTrace();

        }

        finally{

            if(jr!=null){

                jr.disconnect();

            }

        }

    }

   

    privatestaticvoid usePipeline(int count){

        Jedis jr = null;

        try {

            jr = new Jedis("10.10.224.44", 6379);

            Pipeline pl = jr.pipelined();

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

                 pl.incr("testKey2");

            }

                pl.sync();

        } catch (Exception e) {

            e.printStackTrace();

        }

        finally{

            if(jr!=null){

                jr.disconnect();

            }

        }

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值