一、连接Redis
1、pom.xml
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.1.0</version>
</dependency>
2、Java代码
import redis.clients.jedis.Jedis;
/**
* @Description: 测试连接redis
*/
public class Test1 {
public static void main(String[] args) {
Jedis jedis = new Jedis("8.140.168.167",6379);
String pong = jedis.ping();
System.out.println("pong = " + pong);
}
}
二、JedisPool
redis
的连接池技术
详情:
https://help.aliyun.com/document_detail/98726.html
1、pom.xml
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>
2、JedisPoolUtil
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
// @Description: 单例模式优化jedis连接池
public class JedisPoolUtil {
private JedisPoolUtil(){}
private volatile static JedisPool jedisPool = null;
private volatile static Jedis jedis = null;
// 返回一个连接池
private static JedisPool getInstance(){
// 双层检测锁(企业中用的非常频繁)
if(jedisPool == null){ // 第一层:检测体温
synchronized (JedisPoolUtil.class){ // 排队进站
if(jedisPool == null) { //第二层:查看健康码
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(1000);
config.setMaxIdle(30);
config.setMaxWaitMillis(60*1000);
config.setTestOnBorrow(true);
jedisPool = new JedisPool( config, "192.168.204.141",6379 );
}
}
}
return jedisPool;
}
// 返回jedis对象
public static Jedis getJedis(){
if(jedis == null){
jedis = getInstance().getResource();
}
return jedis;
}
}
3、JedisPool
import redis.clients.jedis.Jedis;
//* @Description: 测试jedis连接池
public class Test_JedisPool {
public static void main(String[] args) {
Jedis jedis1 = JedisPoolUtil.getJedis();
Jedis jedis2 = JedisPoolUtil.getJedis();
System.out.println(jedis1==jedis2);
}
}