redis Pool 的配置 及使用

一、jedis池的介绍

相信大家都用过线程池或者是jdbc的连接池,使用池可以减少系统在使用所需对象时创建对象的开销,从而提高系统性能和效率。jedis池也是如此,那么我们该如何使用jedis池呢?

二、jedis池的使用

1.所需jar包:commons-pool.jar、jedis-2.1.0.jar


2.编写Redis配置文件(redis.properties): 

本例中代码如下:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. #*****************jedis连接参数设置*********************#  
  2.   
  3. #redis服务器ip #     
  4.   
  5. redis.ip=192.168.8.167  
  6.   
  7. #redis服务器端口号#    
  8.   
  9. redis.port=6379  
  10.   
  11. #************************jedis池参数设置*******************#    
  12.   
  13. #jedis的最大分配对象#    
  14.   
  15. jedis.pool.maxActive=3000  
  16.   
  17. #jedis最大保存idel状态对象数 #    
  18.   
  19. jedis.pool.maxIdle=1000  
  20.   
  21. #jedis池没有对象返回时,最大等待时间 #    
  22.   
  23. jedis.pool.maxWait=1500  
  24.   
  25. #jedis调用borrowObject方法时,是否进行有效检查#    
  26.   
  27. jedis.pool.testOnBorrow=true  
  28.   
  29. #jedis调用returnObject方法时,是否进行有效检查 #    
  30.   
  31. jedis.pool.testOnReturn=true  

3.编写Java实现代码:

[java]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. package com.zhongying.customer.utils;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import java.util.Properties;  
  6.   
  7. import redis.clients.jedis.Jedis;  
  8.   
  9. import redis.clients.jedis.JedisPool;  
  10.   
  11. import redis.clients.jedis.JedisPoolConfig;  
  12.   
  13. public class MyJedisPool {  
  14.   
  15.     private static JedisPool pool;      
  16.   
  17.     //静态代码初始化池配置    
  18.   
  19.     static {      
  20.   
  21.       try{  
  22.   
  23.       Properties props = new Properties();  
  24.   
  25.      props.load(MyJedisPool.class.getClassLoader().getResourceAsStream("redis.properties"));  
  26.   
  27.              //创建jedis池配置实例    
  28.   
  29.              JedisPoolConfig config = new JedisPoolConfig();     
  30.   
  31.              //设置池配置项值    
  32.   
  33.              config.setMaxActive(Integer.valueOf(props.getProperty("jedis.pool.maxActive")));      
  34.   
  35.              config.setMaxIdle(Integer.valueOf(props.getProperty("jedis.pool.maxIdle")));      
  36.   
  37.              config.setMaxWait(Long.valueOf(props.getProperty("jedis.pool.maxWait")));      
  38.   
  39.              config.setTestOnBorrow(Boolean.valueOf(props.getProperty("jedis.pool.testOnBorrow")));      
  40.   
  41.              config.setTestOnReturn(Boolean.valueOf(props.getProperty("jedis.pool.testOnReturn")));      
  42.   
  43.              //根据配置实例化jedis池    
  44.   
  45.              pool = new JedisPool(config, props.getProperty("redis.ip"), Integer.valueOf(props.getProperty("redis.port")));   
  46.   
  47.       }catch (IOException e) {  
  48.   
  49. e.printStackTrace();  
  50.   
  51. }  
  52.   
  53.     }    
  54.   
  55.       
  56.   
  57.     /**获得jedis对象*/  
  58.   
  59.     public static Jedis getJedisObject(){  
  60.   
  61.      return pool.getResource();  
  62.   
  63.     }  
  64.   
  65.       
  66.   
  67.     /**归还jedis对象*/  
  68.   
  69.     public static void recycleJedisOjbect(Jedis jedis){  
  70.   
  71.      pool.returnResource(jedis);    
  72.   
  73.     }  
  74.   
  75.         
  76.   
  77.     /**  
  78.  
  79.      * 测试jedis池方法  
  80.  
  81.      */    
  82.   
  83.     public static void main(String[] args) {  
  84.   
  85.         Jedis jedis = getJedisObject();//获得jedis实例                    
  86.   
  87.         //获取jedis实例后可以对redis服务进行一系列的操作    
  88.   
  89.         jedis.set("name""zhuxun");    
  90.   
  91.         System.out.println(jedis.get("name"));    
  92.   
  93.         jedis.del("name");    
  94.   
  95.         System.out.println(jedis.exists("name"));    
  96.   
  97.         recycleJedisOjbect(jedis); //将 获取的jedis实例对象还回迟中  
  98.   
  99.     }    
  100.   
  101. }  

4.测试执行结果如下:

[plain]  view plain  copy
  在CODE上查看代码片 派生到我的代码片
  1. zhuxun  
  2. false   

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值