以下是使用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