首先我们在我们的项目中新建一个 RedisPool
类
代码如下:
package com.mmall.common;
import com.mmall.util.PropertiesUtil;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
/**
* @author Chakid
* @since 2018-10-30 20:15
*/
public class RedisPool {
private static JedisPool pool; //jedis连接池
//redis所在的IP
private static String redisIp=PropertiesUtil.getProperty("redis.ip");
//redis开放的端口
private static Integer redisPort =Integer.parseInt(PropertiesUtil.getProperty("redis.port"));
//jedis最大连接数
private static Integer maxTotal= Integer.parseInt(PropertiesUtil.getProperty("redis.max.total","20"));
//最大空闲连接数
private static Integer maxIdle= Integer.parseInt(PropertiesUtil.getProperty("redis.max.idle","10"));
//最小空闲连接数
private static Integer minIdle= Integer.parseInt(PropertiesUtil.getProperty("redis.min.idle","2"));
//从jedis连接池获取连接时,校验并返回可用的连接
private static boolean testBorrow= Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.borrow","true"));
//把连接放回jedis连接池时,校验并返回可用的连接
private static boolean testReturn= Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.return","true"));
//初始化连接池
private static void initPool(){
JedisPoolConfig config = new JedisPoolConfig();
//给config set相关值
config.setMaxTotal(maxTotal);
config.setMaxIdle(maxIdle);
config.setMinIdle(minIdle);
config.setTestOnBorrow(testBorrow);
config.setTestOnReturn(testReturn);
//连接耗尽时,是否阻塞,false会抛出异常,true直到阻塞超时,默认为true
config.setBlockWhenExhausted(true);
pool = new JedisPool(config,redisIp,redisPort,1000*2);
}
//实例化连接池
static {
initPool();
}
//从连接池中获取一个连接对象
public static Jedis getJedis(){
return pool.getResource();
}
//如果是一个损坏连接就放在BrokenResource
public static void returnBrokenResource(Jedis jedis){
pool.returnBrokenResource(jedis);
}
//将jedis放回连接池
public static void returnResource(Jedis jedis){
pool.returnResource(jedis);
}
//用main测试我们的连接
public static void main(String[] args) {
Jedis jedis = pool.getResource();
jedis.set("chakidkey","chakidvalue");
returnResource(jedis);
pool.destroy();
System.out.println("program is end~");
}
}
然后由于我是把配置信息单独配置多出来,如果只是单独测试 Jedis
的连接的话,把我下面的对应参数填到上面即可~
#start redis config
#redis所在服务器IP
redis.ip=119.29.xx.xxx
#redis的端口
redis.port=6379
#最大连接数
redis.max.total=20
#最大空闲连接数
redis.max.idle=10
#最小空闲连接数
redis.min.idle=2
#从jedis连接池获取连接时,校验并返回可用的连接
redis.test.borrow=true
#把连接放回jedis连接池时,校验并返回可用的连接 return设置为false的时候,在并发量高的时候可以提高我们的并发效率
redis.test.return=false
#end redis config
相关代码的讲解都在注释中啦~
测试代码写好之后,接下来就是测试我们的连接了:
用Xshell连接我们的服务器,打开Redis服务
然后Xshell启动我们的连接客户端:
发现原本存在一些,我先把里面的删掉,执行:
flushall
好,发现所以key都被我们清空了,接下来就要运行我们上面编写的代码,直接运行
main
函数即可~
OK,执行完毕,来看看我们的redis里面有没有我们刚才加的数据吧~
咦,发现数据已经加进去了,那么测试也就成功啦~