RedisPool类使用Jedis操作Redis
Posted @左五六
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RedisPool类使用Jedis操作Redis相关的知识,希望对你有一定的参考价值。
以下是使用jedis操作本机redis缓存的基本方法,jedis对象封装了redis执行的很多操作命令,获取到jedis对象之后(通过jedisPool连接池获取)就可以操作redis缓存了。
1 public class RedisPool {
2
3 //jedis封装好了连接池对象,首先使用连接池对象
4 private static JedisPool jedisPool;
5 //连接池最大可连接数量
6 private static Integer maxTotal= Integer.parseInt(PropertiesUtil.getProperty("redis.max.total", "20"));
7 //连接池最大空闲数量
8 private static Integer maxIdle=Integer.parseInt(PropertiesUtil.getProperty("redis.max.idle", "20"));
9 //连接池最小空闲数量
10 private static Integer minIdle=Integer.parseInt(PropertiesUtil.getProperty("redos.min.idle", "20"));
11 //在borrow一个jedis实例的时候,是否要进行验证操作,如果赋值true,则是可用的
12 //一般将JedisPool中的连接称为连接实例
13 private static Boolean testOnBorrow=Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.borrow", "true"));
14 //在return一个jedis实例的时候,是否要进行验证操作,如果赋值true,则放回jedispool的实例是可用的
15 private static Boolean testOnReturn=Boolean.parseBoolean(PropertiesUtil.getProperty("redis.test.return", "true"));
16
17 //初始化连接池对象使用的ip(下面的这两个是比较关键的,契合了本机的redis的基本属性)
18 private static String redisIp=PropertiesUtil.getProperty("redis.ip");
19 //初始化连接池对象使用的port
20 private static Integer redisPort = Integer.parseInt(PropertiesUtil.getProperty("redis.port"));
21
22
23 //初始化JedisPool
24 private static void initPool(){
25 JedisPoolConfig config = new JedisPoolConfig();
26
27 config.setMaxTotal(maxTotal);
28 config.setMaxIdle(maxIdle);
29 config.setMinIdle(minIdle);
30
31 config.setTestOnBorrow(testOnBorrow);
32 config.setTestOnReturn(testOnReturn);
33
34 //当连接耗尽的时候设置阻塞,false会抛出异常,true阻塞直到超时,默认为true,但是如果超时的话也会抛出超时异常的
35 config.setBlockWhenExhausted(true);
36
37 //初始化连接池对象(调用JedisPool的构造器,上面已声明了jedisPool)
38 jedisPool = new JedisPool(config, redisIp, redisPort, 1000*2);
39 }
40
41 //初始化jedis连接池(在加载本类的时候就会初始化即执行initpool()方法)
42 static{
43 initPool();
44 }
45
46 //在连接池中获取jedis连接(主要是供该类调用)
47 public static Jedis getJedis(){
48 return jedisPool.getResource();
49 }
50 //在使用完了之后归还jedis连接
51 public static void returnResource(Jedis jedis){
52 jedisPool.returnResource(jedis);//源码已进行空判断
53 }
54 //返回已破坏的jedis连接
55 public static void returnBrokenResource(Jedis jedis){
56 jedisPool.returnBrokenResource(jedis);
57 }
58
59
60 //测试
61 public static void main(String[] args){
62 Jedis jedis = jedisPool.getResource();
63 jedis.set("firstKey", "firstValue");
64 returnResource(jedis);
65 jedisPool.destroy();
66 System.out.println("program is end");
67 }
68
69 }
以下是关于redis的配置文件
1 #redis config start
2
3 #最大连接数
4 redis.max.total=20
5 #最大空闲数
6 redis.max.idle=10
7 #最小空闲数
8 redos.min.idle=2
9 #从jedis连接池获取连接时,校验并返回可用的连接
10 redis.test.borrow=true
11 #把连接放回jedis连接池时,校验并返回可用的连接
12 redis.test.return=false
13
14 redis.ip=127.0.0.1
15 redis.port=6379
16
17 #redis config end
以上是关于RedisPool类使用Jedis操作Redis的主要内容,如果未能解决你的问题,请参考以下文章