如何开自己的网站,沈阳注册公司,微商怎么推广自己的产品,澄海建网站2019独角兽企业重金招聘Python工程师标准 spring集成 JedisCluster 连接 redis3.0 集群 博客分类#xff1a; 缓存 spring 客户端采用最新的jedis 2.7 1. maven依赖#xff1a; dependency groupIdredis.clients/groupId artifact… 2019独角兽企业重金招聘Python工程师标准 spring集成 JedisCluster 连接 redis3.0 集群 博客分类 缓存 spring 客户端采用最新的jedis 2.7 1. maven依赖 dependency groupIdredis.clients/groupId artifactIdjedis/artifactId version2.7.2/version /dependency 2. 增加spring 配置 Java代码 bean namegenericObjectPoolConfig classorg.apache.commons.pool2.impl.GenericObjectPoolConfig property namemaxWaitMillis value-1 / property namemaxTotal value1000 / property nameminIdle value8 / property namemaxIdle value100 / /bean bean idjedisCluster classxxx.JedisClusterFactory property nameaddressConfig valueclasspath:connect-redis.properties/value /property property nameaddressKeyPrefix valueaddress / !-- 属性文件里 key的前缀 -- property nametimeout value300000 / property namemaxRedirections value6 / property namegenericObjectPoolConfig refgenericObjectPoolConfig / /bean 3. 增加connect-redis.properties 配置文件 这里配置了6个节点 Java代码 address1172.16.23.27:6379 address2172.16.23.27:6380 address3172.16.23.27:6381 address4172.16.23.27:6382 address5172.16.23.27:6383 address6172.16.23.27:6384 4. 增加java类 Java代码 import java.util.HashSet; import java.util.Properties; import java.util.Set; import java.util.regex.Pattern; import org.apache.commons.pool2.impl.GenericObjectPoolConfig; import org.springframework.beans.factory.FactoryBean; import org.springframework.beans.factory.InitializingBean; import org.springframework.core.io.Resource; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.JedisCluster; public class JedisClusterFactory implements FactoryBeanJedisCluster, InitializingBean { private Resource addressConfig; private String addressKeyPrefix ; private JedisCluster jedisCluster; private Integer timeout; private Integer maxRedirections; private GenericObjectPoolConfig genericObjectPoolConfig; private Pattern p Pattern.compile(^.[:]\\d{1,5}\\s*$); Override public JedisCluster getObject() throws Exception { return jedisCluster; } Override public Class? extends JedisCluster getObjectType() { return (this.jedisCluster ! null ? this.jedisCluster.getClass() : JedisCluster.class); } Override public boolean isSingleton() { return true; } private SetHostAndPort parseHostAndPort() throws Exception { try { Properties prop new Properties(); prop.load(this.addressConfig.getInputStream()); SetHostAndPort haps new HashSetHostAndPort(); for (Object key : prop.keySet()) { if (!((String) key).startsWith(addressKeyPrefix)) { continue; } String val (String) prop.get(key); boolean isIpPort p.matcher(val).matches(); if (!isIpPort) { throw new IllegalArgumentException(ip 或 port 不合法); } String[] ipAndPort val.split(:); HostAndPort hap new HostAndPort(ipAndPort[0], Integer.parseInt(ipAndPort[1])); haps.add(hap); } return haps; } catch (IllegalArgumentException ex) { throw ex; } catch (Exception ex) { throw new Exception(解析 jedis 配置文件失败, ex); } } Override public void afterPropertiesSet() throws Exception { SetHostAndPort haps this.parseHostAndPort(); jedisCluster new JedisCluster(haps, timeout, maxRedirections,genericObjectPoolConfig); } public void setAddressConfig(Resource addressConfig) { this.addressConfig addressConfig; } public void setTimeout(int timeout) { this.timeout timeout; } public void setMaxRedirections(int maxRedirections) { this.maxRedirections maxRedirections; } public void setAddressKeyPrefix(String addressKeyPrefix) { this.addressKeyPrefix addressKeyPrefix; } public void setGenericObjectPoolConfig(GenericObjectPoolConfig genericObjectPoolConfig) { this.genericObjectPoolConfig genericObjectPoolConfig; } } 5. 到此配置完成 使用时直接注入即可 如下所示 Autowired JedisCluster jedisCluster; http://xyqck163.iteye.com/blog/2211108 转载于:https://my.oschina.net/xiaominmin/blog/1599371