Idea连接
新建一个maven项目
在pom.xml中添加相关依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
新建类并连接数据库进行操作
import redis.clients.jedis.Jedis;
public class HelloRedis {
public static void main(String[] args){
//连接Redis服务
Jedis jedis = new Jedis("localhost",6379);
System.out.println("Server is starting!" + jedis.ping());
jedis.set("jname1","HelloJedis!");
System.out.println(jedis.get("jname1"));
jedis.close();
}
}
连接池
JedisPool初始化
JedisPool函数
public JedisPool(GenericObjectPoolConfig poolConfig, String host, int port) {
this(poolConfig, host, port, 2000, (String)null, 0, (String)null);
}
直接设置
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
// 设置最大10个连接
jedisPoolConfig.setMaxTotal(10);
pool = new JedisPool(jedisPoolConfig, "localhost");
封装连接参数
jedis.properties
jedis.host=localhost
jedis.port=6379
jedis.maxTotal=30
jedis.maxIdle=10
加载配置信息
静态代码块初始化资源
static{
//读取配置文件 获得参数值
ResourceBundle rb = ResourceBundle.getBundle("jedis");
host = rb.getString("jedis.host");
port = Integer.parseInt(rb.getString("jedis.port"));
maxTotal = Integer.parseInt(rb.getString("jedis.maxTotal"));
maxIdle = Integer.parseInt(rb.getString("jedis.maxIdle"));
poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(maxTotal);
poolConfig.setMaxIdle(maxIdle);
jedisPool = new JedisPool(poolConfig,host,port);
}
获取连接
public static Jedis getJedis(){
Jedis jedis = jedisPool.getResource();
return jedis;
}
关闭连接
使用Jedis.close()函数
Jedis.close()源码
@Override
public void close() {
if (dataSource != null) {
// dataSource 即为 JedisPool实例,
if (client.isBroken()) {
// 调用 JedisPool#returnBrokenResource方法
this.dataSource.returnBrokenResource(this);
} else {
// 调用 JedisPool#returnResource 方法
this.dataSource.returnResource(this);
}
} else {
client.close();
}
}
完整连接并释放连接池资源的方式
Jedis jedis = null;
try{
// 从连接池获取一个Jedis实例
jedis = pool.getResource();
//设置 redis 字符串数据 SET 10km blog.csdn.net/10km
jedis.set("jname1", "HelloJedis!");
// 获取存储的数据并输出
System.out.println("redis 存储的字符串为: "+ jedis.get("jname1"));
}finally{
if(null != jedis)
jedis.close(); // 释放资源还给连接池
}