1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package com.chinacreator.videoalliance.order.util;
- import org.apache.commons.lang.StringUtils;
- import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
- import org.apache.log4j.Logger;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.stereotype.Component;
- import com.chinacreator.videoalliance.common.dao.DictionaryDao;
- import redis.clients.jedis.HostAndPort;
- import redis.clients.jedis.JedisCluster;
- import java.io.IOException;
- import java.io.InputStream;
- import java.util.HashSet;
- import java.util.Properties;
- import java.util.Set;
- /**
- * 集群环境下Jedis操作
- */
- @Component
- public class RedisCluster {
- public static JedisCluster jedis;
-
- static {
- //20220322改走配置化
- //redis集群地址
- String redisCluster = null;
- //redis集群密码
- String redisPassword = null;
- try {
- System.out.println("/************RedisCluster开始查询数据库************/");
- DictionaryDao dao = new DictionaryDao();
- redisCluster = dao.getValue("videoif_redisCluster");
- redisPassword = dao.getValue("videoif_redisPassword");
- System.out.println("redisCluster=>"+redisCluster);
- System.out.println("redisPassword=>"+redisPassword);
- System.out.println("/************RedisCluster查询数据库结束************/");
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.out.println("RedisCluster查询数据库结束出现异常"+e.getMessage());
- }
- // 添加集群的服务节点Set集合
- Set<HostAndPort> hostAndPortsSet = new HashSet<HostAndPort>();
- //测试
- //String redisCluster="10.0.17.8:7000,10.0.17.39:7000,10.0.17.36:7000,10.0.17.31:7000,10.0.17.11:7000,10.0.17.15:7000";
- //String redisPassword="e821202ed5af57c30ae3";
- //正式
- /**
- String redisCluster="172.18.0.1:7000,172.18.0.2:7000,172.18.0.3:7000,172.18.0.4:7000,172.18.0.5:7000,172.18.0.6:7000";
- String redisPassword="r515f2114669tv1f98b0b5330ec0e2sd";
- **/
- //如果配置为空,默认连接正式环境
- if(StringUtils.isEmpty(redisCluster) || StringUtils.isEmpty(redisPassword)){
- redisCluster="172.18.0.1:7000,172.18.0.2:7000,172.18.0.3:7000,172.18.0.4:7000,172.18.0.5:7000,172.18.0.6:7000";
- redisPassword="r515f2114669tv1f98b0b5330ec0e2sd";
- }
- String[] split = redisCluster.split(",");
- for (String s : split) {
- String[] server = s.split(":");
- hostAndPortsSet.add(new HostAndPort(server[0], Integer.parseInt(server[1])));
- }
- //System.out.println(hostAndPortsSet);
- // Jedis连接池配置
- GenericObjectPoolConfig jedisPoolConfig = new GenericObjectPoolConfig();
- // 最大空闲连接数, 默认8个
- jedisPoolConfig.setMaxIdle(10);
- // 最大连接数, 默认8个
- jedisPoolConfig.setMaxTotal(500);
- //最小空闲连接数, 默认0
- jedisPoolConfig.setMinIdle(5);
- // 获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1
- jedisPoolConfig.setMaxWaitMillis(-1); // 设置2秒
- //对拿到的connection进行validateObject校验
- jedisPoolConfig.setTestOnBorrow(true);
- jedis = new JedisCluster(hostAndPortsSet, 6000, 6000, 1, redisPassword, jedisPoolConfig);
- }
- }
|