jedis连接池的使用
jedis连接池的基本概念
jedis连接资源的创建与销毁是很消耗程序性能,所以jedis为我们提供了jedis的池化技术,
jedisPool在创建时初始化一些连接资源存储到连接池中,使用jedis连接资源时不需要创建,
而是从连接池中获取一个资源进行redis的操作,使用完毕后,不需要销毁该jedis连接资源,
而是将该资源归还给连接池,供其他请求使用。
package com.hyperchain;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class jedisPool {
@Test
public void testJedisPool(){
//1 获得连接池配置对象,设置配置项
JedisPoolConfig config = new JedisPoolConfig();
// 1.1 最大连接数
config.setMaxTotal(30);
//1.2 最大空闲连接数
config.setMaxIdle(10);
//获得连接池
JedisPool jedisPool = new JedisPool(config,"localhost",6379);
Jedis jedis=null;
try {
//3.获得核心对象
jedis = jedisPool.getResource();
//4.设置数据
jedis.set("name","xinruyi");
//5.获得数据
String name = jedis.get("name");
System.out.println(name);
} catch (Exception e) {
e.printStackTrace();
} finally {
if(jedis!=null){
jedis.close();
}
}
//虚拟机关闭时,释放pool资源
if(jedisPool!=null){
jedisPool.close();
}
}
}
2、案例-编写jedis连接池工具类
*JedisUtil*/
package com.hyperchain;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import java.util.ResourceBundle;
public final class JedisUtil {
private JedisUtil() {}
private static JedisPool jedisPool;
private static int maxtotal;
private static int maxwaitmillis;
private static String host;
private static int port;
/*读取jedis.properties配置文件*/
static{
ResourceBundle rb = ResourceBundle.getBundle("jedis");
maxtotal = Integer.parseInt(rb.getString("maxtotal"));
maxwaitmillis = Integer.parseInt(rb.getString("maxwaitmillis"));
host = rb.getString("host");
port = Integer.parseInt(rb.getString("port"));
}
/*创建连接池*/
static{
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(maxtotal);
jedisPoolConfig.setMaxWaitMillis(maxwaitmillis);
jedisPool = new JedisPool(jedisPoolConfig,host,port);
}
/*获取jedis*/
public static Jedis getJedis(){
return jedisPool.getResource();
}
/*关闭Jedis*/
public static void close(Jedis jedis){
if(jedis!=null){
jedis.close();
}
}
}
3、jedis.properties配置文件
maxtotal=100
maxwaitmillis=1000
host=127.0.0.1
port=6379