Jedis连接池的使用

Jedis连接池的使用

ID:38164222

大小:20.99 KB

页数:4页

时间:2019-06-06

Jedis连接池的使用_第1页
Jedis连接池的使用_第2页
Jedis连接池的使用_第3页
Jedis连接池的使用_第4页
资源描述:

《Jedis连接池的使用》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Jedis连接池的使用所需jar:jedis-2.1.0.jar和commons-pool-1.5.4.jarJedis操作步骤如下:1->获取Jedis实例需要从JedisPool中获取;2->用完Jedis实例需要返还给JedisPool;3->如果Jedis在使用过程中出错,则也需要还给JedisPool;代码如下:packagecom.ljq.utils;importredis.clients.jedis.Jedis;importredis.clients.jedis.JedisPool;importredis.clients.jedis.JedisPool

2、Config;/***Redis操作接口**@author林计钦*@version1.02013-6-14上午08:54:14*/publicclassRedisAPI{privatestaticJedisPoolpool=null;/***构建redis连接池**@paramip*@paramport*@returnJedisPool*/publicstaticJedisPoolgetPool(){if(pool==null){JedisPoolConfigconfig=newJedisPoolConfig();//控制一个pool可分配多少个jedis实例,通过

3、pool.getResource()来获取;//如果赋值为-1,则表示不限制;如果pool已经分配了maxActive个jedis实例,则此时pool的状态为exhausted(耗尽)。config.setMaxActive(500);//控制一个pool最多有多少个状态为idle(空闲的)的jedis实例。config.setMaxIdle(5);//表示当borrow(引入)一个jedis实例时,最大的等待时间,如果超过等待时间,则直接抛出JedisConnectionException;config.setMaxWait(1000*100);//在borrow

4、一个jedis实例时,是否提前进行validate操作;如果为true,则得到的jedis实例均是可用的;config.setTestOnBorrow(true);pool=newJedisPool(config,"192.168.2.191",8888);}returnpool;}/***返还到连接池**@parampool*@paramredis*/publicstaticvoidreturnResource(JedisPoolpool,Jedisredis){if(redis!=null){pool.returnResource(redis);}}/***获取

5、数据**@paramkey*@return*/publicstaticStringget(Stringkey){Stringvalue=null;JedisPoolpool=null;Jedisjedis=null;try{pool=getPool();jedis=pool.getResource();value=jedis.get(key);}catch(Exceptione){//释放redis对象pool.returnBrokenResource(jedis);e.printStackTrace();}finally{//返还到连接池returnResourc

6、e(pool,jedis);}returnvalue;}}代码说明:a、获取jedis实例时,实际上可能有两类错误。一类是pool.getReource(),得不到可用的jedis实例;另一类是jedis.set/get时出错也会抛出异常;为了实现区分,所以根据instance是否为null来实现,如果为空就证明instance根本就没初始化,也就不用return给pool;如果instance不为null,则证明是需要返还给pool的;b、在instance出错时,必须调用returnBrokenResource返还给pool,否则下次通过getResource得

7、到的instance的缓冲区可能还存在数据,出现问题!-------------------------------------------------JedisPool的配置参数很大程度上依赖于实际应用需求、软硬件能力。以前没用过commons-pool,所以这次花了一整天专门看这些参数的含义。。。JedisPool的配置参数大部分是由JedisPoolConfig的对应项来赋值的。maxActive:控制一个pool可分配多少个jedis实例,通过pool.getResource()来获取;如果赋值为-1,则表示不限制;如果pool已经分配了maxActiv

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。