欢迎访问 生活随笔!

尊龙游戏旗舰厅官网

当前位置: 尊龙游戏旗舰厅官网 > > 编程问答 >内容正文

编程问答

spring集成 jediscluster 连接 redis3.0 集群 -尊龙游戏旗舰厅官网

发布时间:2025/1/21 编程问答 19 豆豆
尊龙游戏旗舰厅官网 收集整理的这篇文章主要介绍了 spring集成 jediscluster 连接 redis3.0 集群 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

最近在公司做了 jediscluster整合spring 的配置, 分享如下

 

客户端采用最新的jedis 2.7

1.

maven依赖:

<dependency><groupid>redis.clientsgroupid><artifactid>jedisartifactid><version>2.7.2version>dependency> 

2.

增加spring 配置

<bean name="genericobjectpoolconfig" class="org.apache.commons.pool2.impl.genericobjectpoolconfig" > <property name="maxwaitmillis" value="-1" /> <property name="maxtotal" value="1000" /> <property name="minidle" value="8" /> <property name="maxidle" value="100" /> bean> <bean id="jediscluster" class="xxx.jedisclusterfactory"> <property name="addressconfig"> <value>classpath:connect-redis.propertiesvalue> property> <property name="addresskeyprefix" value="address" /> <property name="timeout" value="300000" /> <property name="maxredirections" value="6" /> <property name="genericobjectpoolconfig" ref="genericobjectpoolconfig" /> bean>

3.

增加connect-redis.properties  配置文件

这里配置了6个节点

address1=172.16.23.27:6379 address2=172.16.23.27:6380 address3=172.16.23.27:6381 address4=172.16.23.27:6382 address5=172.16.23.27:6383 address6=172.16.23.27:6384

4.

增加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 factorybean, 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 classextends
jediscluster> getobjecttype() { return (this.jediscluster != null ? this.jediscluster.getclass() : jediscluster.class); } @override public boolean issingleton() { return true; } private set parsehostandport() throws exception { try { properties prop = new properties(); prop.load(this.addressconfig.getinputstream()); set haps = new hashset(); 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 { set 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

 

总结

以上是尊龙游戏旗舰厅官网为你收集整理的spring集成 jediscluster 连接 redis3.0 集群的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得尊龙游戏旗舰厅官网网站内容还不错,欢迎将尊龙游戏旗舰厅官网推荐给好友。

网站地图