Jedis自带了一个连接池:JedisPool
使用方法:
1、创建JedisPool连接池对象
2、调用连接池对象的方法 getResource() 以获取Jedis连接
3、使用Jedis连接 完成方法
4、将连接归还到连接池中
连接池的构造参数:
#最大活动对象数
redis.pool.maxTotal=1000
#最大能够保持idel状态的对象数
redis.pool.maxIdle=100
#最小能够保持idel状态的对象数
redis.pool.minIdle=50
#当池内没有返回对象时 最大等待时间
redis.pool.maxWaitMillis=10000
#当调用borrow Object方法时 是否进行有效性检查
redis.pool.testOnBorrow=true
#当调用return Object方法时 是否进行有效性检查
redis.pool.testOnReturn=true
#“空闲链接”检测线程 检测的周期和毫秒数
#若为负值 则表示不运行“检测线程”
#默认为-1.
redis.pool.timeBetweenEvictionRunsMillis=30000
#向调用者输出“链接”对象时 是否检测它的空闲超时
redis.pool.testWhileIdle=true
# 对于“空闲链接”检测线程而言 每次检测的链接资源的个数
#默认为3.
redis.pool.numTestsPerEvictionRun=50
#redis服务器的IP
redis.ip=xxxxxx
#redis服务器的Port端口号
redis1.port=6379
使用:
创建配置对象
JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
最大允许连接数
jedisPoolConfig.setMaxTotal(50);
最大空闲连接
jedisPoolConfig.setMaxIdle(10);
在创建Jedis连接池对象的时候传入配置对象 同时须设置服务端地址
JedisPool jedisPool=new JedisPool(jedisPoolConfig,"localhost",6379);
...
抽取配置文件作为一个工具类
创建一个配置文件jedis.properties用于保存参数
host=127.0.0.1
port=6379
maxTotal=50
maxIdle=10
还可自己根据需要添加
使用:
创建连接池对象
private static JedisPool jedisPool;
定义静态代码块 当类加载时即读取配置文件 并对连接池对象进行数值设置
static
{
读取配置文件
InputStream resourceAsStream = JedisPoolUtils.class.getClassLoader().getResourceAsStream("jedis.properties");
创建Properties对象
Properties properties=new Properties();
将Properties对象和配置文件相关联
try
{
properties.load(resourceAsStream);
}
catch (IOException e)
{
e.printStackTrace();
}
从Properties对象中获取数据 并设置到JedisPoolConfig中
JedisPoolConfig jedisPoolConfig=new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(Integer.parseInt(properties.getProperty("maxTotal")));
jedisPoolConfig.setMaxIdle(Integer.parseInt(properties.getProperty("maxIdle")));
初始化JedisPool连接池对象
jedisPool=new JedisPool(jedisPoolConfig,properties.getProperty("host"), Integer.parseInt(properties.getProperty("port")));
}
// 提供获取连接的方法(返回连接池对象)
public static Jedis getJedis()
{
return jedisPool.getResource();
}