e12807ab93eb0e5ffcbaaa82ef5799ba35240ed0.svn-base 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package com.chinacreator.videoalliance.order.util;
  2. import org.apache.commons.lang.StringUtils;
  3. import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
  4. import org.apache.log4j.Logger;
  5. import org.springframework.beans.factory.annotation.Value;
  6. import org.springframework.stereotype.Component;
  7. import com.chinacreator.videoalliance.common.dao.DictionaryDao;
  8. import redis.clients.jedis.HostAndPort;
  9. import redis.clients.jedis.JedisCluster;
  10. import java.io.IOException;
  11. import java.io.InputStream;
  12. import java.util.HashSet;
  13. import java.util.Properties;
  14. import java.util.Set;
  15. /**
  16. * 集群环境下Jedis操作
  17. */
  18. @Component
  19. public class RedisCluster {
  20. public static JedisCluster jedis;
  21. static {
  22. //20220322改走配置化
  23. //redis集群地址
  24. String redisCluster = null;
  25. //redis集群密码
  26. String redisPassword = null;
  27. try {
  28. System.out.println("/************RedisCluster开始查询数据库************/");
  29. DictionaryDao dao = new DictionaryDao();
  30. redisCluster = dao.getValue("videoif_redisCluster");
  31. redisPassword = dao.getValue("videoif_redisPassword");
  32. System.out.println("redisCluster=>"+redisCluster);
  33. System.out.println("redisPassword=>"+redisPassword);
  34. System.out.println("/************RedisCluster查询数据库结束************/");
  35. } catch (Exception e) {
  36. // TODO Auto-generated catch block
  37. e.printStackTrace();
  38. System.out.println("RedisCluster查询数据库结束出现异常"+e.getMessage());
  39. }
  40. // 添加集群的服务节点Set集合
  41. Set<HostAndPort> hostAndPortsSet = new HashSet<HostAndPort>();
  42. //测试
  43. //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";
  44. //String redisPassword="e821202ed5af57c30ae3";
  45. //正式
  46. /**
  47. 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";
  48. String redisPassword="r515f2114669tv1f98b0b5330ec0e2sd";
  49. **/
  50. //如果配置为空,默认连接正式环境
  51. if(StringUtils.isEmpty(redisCluster) || StringUtils.isEmpty(redisPassword)){
  52. 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";
  53. redisPassword="r515f2114669tv1f98b0b5330ec0e2sd";
  54. }
  55. String[] split = redisCluster.split(",");
  56. for (String s : split) {
  57. String[] server = s.split(":");
  58. hostAndPortsSet.add(new HostAndPort(server[0], Integer.parseInt(server[1])));
  59. }
  60. //System.out.println(hostAndPortsSet);
  61. // Jedis连接池配置
  62. GenericObjectPoolConfig jedisPoolConfig = new GenericObjectPoolConfig();
  63. // 最大空闲连接数, 默认8个
  64. jedisPoolConfig.setMaxIdle(10);
  65. // 最大连接数, 默认8个
  66. jedisPoolConfig.setMaxTotal(500);
  67. //最小空闲连接数, 默认0
  68. jedisPoolConfig.setMinIdle(5);
  69. // 获取连接时的最大等待毫秒数(如果设置为阻塞时BlockWhenExhausted),如果超时就抛异常, 小于零:阻塞不确定的时间, 默认-1
  70. jedisPoolConfig.setMaxWaitMillis(-1); // 设置2秒
  71. //对拿到的connection进行validateObject校验
  72. jedisPoolConfig.setTestOnBorrow(true);
  73. jedis = new JedisCluster(hostAndPortsSet, 6000, 6000, 1, redisPassword, jedisPoolConfig);
  74. }
  75. }