首页 > 开发 > Java > 正文

java客户端Jedis操作Redis Sentinel 连接池的实现方法

2024-07-13 10:05:46
字体:
来源:转载
供稿:网友

pom.xml配置

<dependency>   <groupId>org.springframework.data</groupId>   <artifactId>spring-data-redis</artifactId>   <version>1.0.2.RELEASE</version> </dependency> <dependency>   <groupId>redis.clients</groupId>   <artifactId>jedis</artifactId>   <version>2.7.0</version>   <type>jar</type>   <scope>compile</scope> </dependency> ?123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 public class JedisPoolUtil {      private static JedisSentinelPool pool = null;    public static Properties getJedisProperties() {      Properties config = new Properties();     InputStream is = null;     try {       is = JedisPoolUtil.class.getClassLoader().getResourceAsStream("cacheConfig.properties");       config.load(is);     } catch (IOException e) {       logger.error("", e);     } finally {       if (is != null) {         try {           is.close();         } catch (IOException e) {           logger.error("", e);         }       }     }     return config;   }    /**    * 创建连接池    *    */  private static void createJedisPool() {     // 建立连接池配置参数     JedisPoolConfig config = new JedisPoolConfig();     Properties prop = getJedisProperties();     // 设置最大连接数     config.setMaxTotal(StringUtil.nullToInteger(prop.getProperty("MAX_ACTIVE")));     // 设置最大阻塞时间,记住是毫秒数milliseconds     config.setMaxWaitMillis(StringUtil.nullToInteger(prop.getProperty("MAX_WAIT")));     // 设置空间连接     config.setMaxIdle(StringUtil.nullToInteger(prop.getProperty("MAX_IDLE")));     // jedis实例是否可用     boolean borrow = prop.getProperty("TEST_ON_BORROW") == "false" ? false : true;     config.setTestOnBorrow(borrow);     // 创建连接池 //   pool = new JedisPool(config, prop.getProperty("ADDR"), StringUtil.nullToInteger(prop.getProperty("PORT")), StringUtil.nullToInteger(prop.getProperty("TIMEOUT")));// 线程数量限制,IP地址,端口,超时时间     //获取redis密码     String password = StringUtil.nullToString(prop.getProperty("PASSWORD"));       String masterName = "mymaster";     Set<String> sentinels = new HashSet<String>();     sentinels.add("192.168.137.128:26379");     sentinels.add("192.168.137.128:26380");     sentinels.add("192.168.137.128:26381");     pool = new JedisSentinelPool(masterName, sentinels, config);   }    /**    * 在多线程环境同步初始化    */  private static synchronized void poolInit() {     if (pool == null)       createJedisPool();   }    /**    * 获取一个jedis 对象    *    * @return    */  public static Jedis getJedis() {     if (pool == null)       poolInit();     return pool.getResource();   }    /**    * 释放一个连接    *    * @param jedis    */  public static void returnRes(Jedis jedis) {     pool.returnResource(jedis);   }    /**    * 销毁一个连接    *    * @param jedis    */  public static void returnBrokenRes(Jedis jedis) {     pool.returnBrokenResource(jedis);   }         public static void main(String[] args){     Jedis jedis=getJedis();        }  } 

以上这篇java客户端Jedis操作Redis Sentinel 连接池的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持VeVb武林网。


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表