redis使用Pipeline管道提升写入速度_第1页
redis使用Pipeline管道提升写入速度_第2页
redis使用Pipeline管道提升写入速度_第3页
redis使用Pipeline管道提升写入速度_第4页
全文预览已结束

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

redis使用Pipeline管道提升写入速度在单实例redis环境,我们可以采用Pipeline的方式写入数据,采用管道的方式将多个key值一起提交,较一个key值提交一次,减少了IO,速度会明显提升,下面是采用管道和不采用管道的方式比较执行10万次的,时间比较。package

com.hxl;import

java.util.LinkedHashSet;import

java.util.Set;import

redis.clients.jedis.BinaryJedis;import

redis.clients.jedis.HostAndPort;import

redis.clients.jedis.Jedis;import

redis.clients.jedis.JedisCluster;import

redis.clients.jedis.JedisPoolConfig;import

redis.clients.jedis.Pipeline;public

class

PipelineTest

{

/**

*

*@paramargs

*/

public

static

void

main(String[]

args)

{

int

count

=

100000;

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));

}

private

static

void

withoutPipeline(int

count)

{

JedisPoolConfigpoolConfig

=

new

JedisPoolConfig();

//最大连接数

poolConfig.setMaxTotal(1);

//最大空闲数

poolConfig.setMaxIdle(1);

//最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:

//Couldnotgetaresourcefromthepool

poolConfig.setMaxWaitMillis(1000);

//Set

nodes=newLinkedHashSet();

//nodes.add(newHostAndPort("1",6379));

//nodes.add(newHostAndPort("1",7379));

//nodes.add(newHostAndPort("2",6379));

//nodes.add(newHostAndPort("2",7379));

//nodes.add(newHostAndPort("3",6379));

//nodes.add(newHostAndPort("3",7379));

//JedisClustercluster=newJedisCluster(nodes,poolConfig);

Jedisjr

=

null;

try

{

jr

=

new

Jedis("1",

8379);

for

(int

i

=

0;

i

<

count;

i++)

{

jr.incr("age1");

}

}

catch

(Exception

e)

{

e.printStackTrace();

}

finally

{

if

(jr

!=

null)

{

jr.disconnect();

}

}

}

private

static

void

usePipeline(int

count)

{

JedisPoolConfigpoolConfig

=

new

JedisPoolConfig();

//最大连接数

poolConfig.setMaxTotal(1);

//最大空闲数

poolConfig.setMaxIdle(1);

//最大允许等待时间,如果超过这个时间还未获取到连接,则会报JedisException异常:www.f-1.cc

//Couldnotgetaresourcefromthepool

poolConfig.setMaxWaitMillis(1000);

Set<HostAndPort>

nodes

=

new

LinkedHashSet<HostAndPort>();

//nodes.add(newHostAndPort("1",6379));

//nodes.add(newHostAndPort("1",7379));

//nodes.add(newHostAndPort("2",6379));

//nodes.add(newHostAndPort("2",7379));

//nodes.add(newHostAndPort("3",6379));

//nodes.add(newHostAndPort("3",7379));

//JedisClustercluster=newJedisCluster(nodes,poolConfig);

Jedisjr

=

null;

try

{

jr

=

new

Jedis("1",8379);

Pipelinepl

=

jr.pipelined();

for

(int

i

=

0;

i

<

count;

i++)

{

pl.incr("age2");

}

pl.sync();

}

catch

(Exception

e)

{

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论