从redis池中获取资源
启动redis 服务:
在解压后的redis目录里面启动cmd命令行
执行redis-server.exe redis.windows.conf命令启动redis
导入jar包
package test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class TestRedis {
// 服务器ip地址
private static String ADDR = "127.0.0.1";
// 端口
// private static String PORT = "6379";
// 密码
// private static String AUTH = "123456";
// 连接实例的最大连接数
private static int MAX_ACTIVE = 1024;
// 控制一个池做多有多少个idle的jedis实例、默认值是8
private static int MAX_IDLE = 200;
// 等待可用链接的最大时间、单位毫秒默认值-1表示不超时、如果超时等待会抛出链接异常
private static int MAX_WAIT = 10000;
// 链接超时时间
private static int TIMEOUT = 10000;
// 在生成一个jedis实例的时候是否提前进行validate操作、如果为true,则得到的jedis实例均是可用的。
private static boolean TEST_ON_BORROW = true;
private static JedisPool jedisPool = null;
// 数据库模式是16个库
public static final int DEFAULT_DATABASE = 0;
// 初始化redis线程池
static {
try {
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(MAX_ACTIVE);
config.setMaxIdle(MAX_IDLE);
config.setMaxWaitMillis(MAX_WAIT);
config.setTestOnBorrow(TEST_ON_BORROW);
config.setMaxTotal(MAX_ACTIVE);
// jedisPool = new JedisPool(config, ADDR, TIMEOUT, DEFAULT_DATABASE);
jedisPool = new JedisPool(config, ADDR);
System.out.println(jedisPool.getNumActive());
} catch (Exception e) {
}
}
public synchronized static Jedis getJedis() {
try {
if (jedisPool != null) {
Jedis jedis = jedisPool.getResource();
System.out.println(jedis.ping());
return jedis;
} else {
return null;
}
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void retunResource(Jedis jedis) {
if (jedis != null) {
jedis.close();
}
}
public static void main(String[] args) {
Jedis jedis = TestRedis.getJedis();
jedis.set("aaa", "bbb");
System.out.println(jedis.get("aaa"));
}
}
测试结果: