使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://files.cnblogs.com/liuling/jedis-2.1.0.jar.zip
如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar,下载地址:http://files.cnblogs.com/liuling/commons-pool-1.5.4.jar.zip
?
一般的,使用Jedis都需要使用连接池来获取连接
一、连接池的配置和使用
首先在spring中配置jedis连接池的一些配置信息
??
class="xml">
?这些配置的具体描述信息可以简单的提一下:
?
?
maxTotal:最大连接数
maxIdle:最大空闲连接数
minIdle:最小空闲连接数
maxWaitMillis:获取连接时最大等待毫秒数,
testOnBorrow:获取连接时检查有效性
testOnRetrun:return给pool时,是否提前进行validate操作
minEvictableIdleTimeMillis:一个对象至少停留在idle状态的最短时间,才能被Idle, object evitor扫描并驱逐
numTestsPerEvictionRun:idle,object,evitor每次扫描对象的数
timeBetweenEvictionRunsMillis:释放连接的扫描间隔
配置完jedis连接池配置之后就可以配置连接池了
?
?
?
?这里配置了jedis的连接池配置,名称地址以及端口密码等
?
?
。连接池就算是配好了,接下来我们就可以配置获取连接的类了:
?
import redis.clients.jedis.Jedis;
import redis.clients.util.Pool;
public class Test {
private Pool redisPool;
public Pool getRedisPool() {
return redisPool;
}
public void setRedisPool(Pool redisPool) {
this.redisPool = redisPool;
}
public Jedis getJedis() {
try {
Jedis jedis = redisPool.getResource();
if (jedis == null) {
return null;
}
return jedis;
} catch (Exception e) {
}
return null;
}
public void release(Jedis jedis) {
if (jedis != null) {
jedis.close();
}
}
public void init(){
}
public static void main(String[] args) {
}
}
?这样我们可以写一个工具类来管理jedis的获取以及关闭等:
?
?public static Jedis getJedis(Integer index){
? ? ? ? Jedis jedis = null;
? ? ? ? JedisClient jedisClient = (JedisClient)ctx.getBean("jedisClient");
? ? ? ? if(null!=jedisClient){
? ? ? ? ? ? jedis = jedisClient.getJedis();
? ? ? ? }
? ? ? ? try{
? ? ? ? ? ? jedis.select(index);
? ? ? ? }catch(Exception e){
? ? ? ? ? ? jedis.select(JedisDBEnum.DEFAULT.getIndex().intValue());
? ? ? ? ? ? log.info("getJedis index:"+index+" and default select db 0",e);
? ? ? ? }
? ? ? ? return jedis;
?
? ? }
?
这一段很简单就是获取一个jedis连接,然后选择几号库,当然,用完jedis之后需要关闭连接
public static void closeJeids(Jedis jedis){
? ? ? ? try{
? ? ? ? ? ? if(null!=jedis){
? ? ? ? ? ? ? ? jedis.close();
? ? ? ? ? ? }
? ? ? ? }catch(Exception e){
? ? ? ? ? ? ? ? ? ??
? ? ? ? }
?
? ? }
这就是通过jedis连接池获取jedis连接的全部流程了
?
?
?
?
?