`
m635674608
  • 浏览: 5062377 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

spring集成 JedisCluster 连接 redis3.0 集群

 
阅读更多

客户端采用最新的jedis 2.7

1.

maven依赖:

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>2.7.2</version>

</dependency>

 

2.

增加spring 配置

Java代码  收藏代码
  1. <bean name="genericObjectPoolConfig" class="org.apache.commons.pool2.impl.GenericObjectPoolConfig" >  
  2.         <property name="maxWaitMillis" value="-1" />  
  3.         <property name="maxTotal" value="1000" />  
  4.         <property name="minIdle" value="8" />  
  5.         <property name="maxIdle" value="100" />  
  6. </bean>  
  7.   
  8. <bean id="jedisCluster" class="xxx.JedisClusterFactory">  
  9.     <property name="addressConfig">  
  10.         <value>classpath:connect-redis.properties</value>  
  11.     </property>  
  12.     <property name="addressKeyPrefix" value="address" />   <!--  属性文件里  key的前缀 -->  
  13.       
  14.     <property name="timeout" value="300000" />  
  15.     <property name="maxRedirections" value="6" />  
  16.     <property name="genericObjectPoolConfig" ref="genericObjectPoolConfig" />  
  17. </bean>  

 

3.

增加connect-redis.properties  配置文件

这里配置了6个节点

Java代码  收藏代码
  1. address1=172.16.23.27:6379  
  2. address2=172.16.23.27:6380  
  3. address3=172.16.23.27:6381  
  4. address4=172.16.23.27:6382  
  5. address5=172.16.23.27:6383  
  6. address6=172.16.23.27:6384  

 

4.

增加java类:

Java代码  收藏代码
  1. import java.util.HashSet;  
  2. import java.util.Properties;  
  3. import java.util.Set;  
  4. import java.util.regex.Pattern;  
  5.   
  6. import org.apache.commons.pool2.impl.GenericObjectPoolConfig;  
  7. import org.springframework.beans.factory.FactoryBean;  
  8. import org.springframework.beans.factory.InitializingBean;  
  9. import org.springframework.core.io.Resource;  
  10.   
  11. import redis.clients.jedis.HostAndPort;  
  12. import redis.clients.jedis.JedisCluster;  
  13.   
  14. public class JedisClusterFactory implements FactoryBean<JedisCluster>, InitializingBean {  
  15.   
  16.     private Resource addressConfig;  
  17.     private String addressKeyPrefix ;  
  18.   
  19.     private JedisCluster jedisCluster;  
  20.     private Integer timeout;  
  21.     private Integer maxRedirections;  
  22.     private GenericObjectPoolConfig genericObjectPoolConfig;  
  23.       
  24.     private Pattern p = Pattern.compile("^.+[:]\\d{1,5}\\s*$");  
  25.   
  26.     @Override  
  27.     public JedisCluster getObject() throws Exception {  
  28.         return jedisCluster;  
  29.     }  
  30.   
  31.     @Override  
  32.     public Class<? extends JedisCluster> getObjectType() {  
  33.         return (this.jedisCluster != null ? this.jedisCluster.getClass() : JedisCluster.class);  
  34.     }  
  35.   
  36.     @Override  
  37.     public boolean isSingleton() {  
  38.         return true;  
  39.     }  
  40.   
  41.   
  42.   
  43.     private Set<HostAndPort> parseHostAndPort() throws Exception {  
  44.         try {  
  45.             Properties prop = new Properties();  
  46.             prop.load(this.addressConfig.getInputStream());  
  47.   
  48.             Set<HostAndPort> haps = new HashSet<HostAndPort>();  
  49.             for (Object key : prop.keySet()) {  
  50.   
  51.                 if (!((String) key).startsWith(addressKeyPrefix)) {  
  52.                     continue;  
  53.                 }  
  54.   
  55.                 String val = (String) prop.get(key);  
  56.   
  57.                 boolean isIpPort = p.matcher(val).matches();  
  58.   
  59.                 if (!isIpPort) {  
  60.                     throw new IllegalArgumentException("ip 或 port 不合法");  
  61.                 }  
  62.                 String[] ipAndPort = val.split(":");  
  63.   
  64.                 HostAndPort hap = new HostAndPort(ipAndPort[0], Integer.parseInt(ipAndPort[1]));  
  65.                 haps.add(hap);  
  66.             }  
  67.   
  68.             return haps;  
  69.         } catch (IllegalArgumentException ex) {  
  70.             throw ex;  
  71.         } catch (Exception ex) {  
  72.             throw new Exception("解析 jedis 配置文件失败", ex);  
  73.         }  
  74.     }  
  75.       
  76.     @Override  
  77.     public void afterPropertiesSet() throws Exception {  
  78.         Set<HostAndPort> haps = this.parseHostAndPort();  
  79.           
  80.         jedisCluster = new JedisCluster(haps, timeout, maxRedirections,genericObjectPoolConfig);  
  81.           
  82.     }  
  83.     public void setAddressConfig(Resource addressConfig) {  
  84.         this.addressConfig = addressConfig;  
  85.     }  
  86.   
  87.     public void setTimeout(int timeout) {  
  88.         this.timeout = timeout;  
  89.     }  
  90.   
  91.     public void setMaxRedirections(int maxRedirections) {  
  92.         this.maxRedirections = maxRedirections;  
  93.     }  
  94.   
  95.     public void setAddressKeyPrefix(String addressKeyPrefix) {  
  96.         this.addressKeyPrefix = addressKeyPrefix;  
  97.     }  
  98.   
  99.     public void setGenericObjectPoolConfig(GenericObjectPoolConfig genericObjectPoolConfig) {  
  100.         this.genericObjectPoolConfig = genericObjectPoolConfig;  
  101.     }  
  102.   
  103. }  

 

 

5.

到此配置完成

使用时,直接注入即可, 如下所示:

 

@Autowired

JedisCluster jedisCluster;

 

http://xyqck163.iteye.com/blog/2211108

分享到:
评论

相关推荐

    springboot集成redis集群,redis安装包配置

    在本文中,我们将深入探讨如何在SpringBoot应用中集成Redis集群以及如何配置Redis服务器。首先,Redis是一个开源的、基于键值对的数据存储系统,常用于数据库、缓存和消息中间件。它以其高性能和易用性而备受青睐。...

    redis windows 集群

    ### Redis Windows 集群部署...同时,还介绍了如何在 Spring Boot 应用程序中集成 Redis 集群,以实现高性能和高可用性的数据存储解决方案。通过这些步骤,可以有效地利用 Redis 集群的优势,提升应用的性能和可靠性。

    适合前后端分离的页码生成器 -pagination.zip

    适合前后端分离的页码生成器

    三菱FX5U ST语言螺丝机程序集:标准模板,功能丰富,结构清晰,含威纶通触摸屏程序,高学习价值,三菱FX5U ST语言螺丝机程序合集:含触摸屏与功能块注释的学习范例,三菱FX5U ST语言 螺丝机程

    三菱FX5U ST语言螺丝机程序集:标准模板,功能丰富,结构清晰,含威纶通触摸屏程序,高学习价值,三菱FX5U ST语言螺丝机程序合集:含触摸屏与功能块注释的学习范例,三菱FX5U ST语言 螺丝机程序(含威纶通触摸屏程序),全ST语言编写,标准模版, 程序包含轴FB,气缸FB等多种功能块,结构清晰,注释详细, 具体很高的学习价值和参考价值。 ,三菱FX5U; ST语言; 螺丝机程序; 威纶通触摸屏程序; 轴FB; 气缸FB; 结构清晰; 注释详细。,三菱FX5U ST语言编程宝典:螺丝机标准模版程序

    项目使用Flutter进行开发,同时支持Andriod与iOS。 支持财经新闻阅读、实时大盘指数、实时沪深行情、k线查看、登录、网页查看、侧边栏、系統分享、微信分享等功能.zip

    项目使用Flutter进行开发,同时支持Andriod与iOS。 支持财经新闻阅读、实时大盘指数、实时沪深行情、k线查看、登录、网页查看、侧边栏、系統分享、微信分享等功能.zip项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

    基于TensorRT和YOLOv5算法的智能监控平台:多线程并行处理,视频监控与录像回放,支持多种功能部署,基于TensorRT和YOLOv5算法的智能监控平台:多线程并行处理,视频监控与录像回放一体

    基于TensorRT和YOLOv5算法的智能监控平台:多线程并行处理,视频监控与录像回放,支持多种功能部署,基于TensorRT和YOLOv5算法的智能监控平台:多线程并行处理,视频监控与录像回放一体化管理,tensorrt yolov5 QT 智能监控平台。 yolov5使用 tensorrt推理封装成dll,支持多线程多任务,可同时并行加载不同模型,同时检测。 Qt开发的监控平台,支持不同平台部署,视频监控,录像回放,电子地图,日志和系统设置应有尽有。 视觉监控,同时加载16路视频,同时并行检测任务,可网络流可本地视频。 ,关键词:tensorrt;yolov5;多线程多任务;QT智能监控平台;视频监控;录像回放;电子地图;并行检测;网络流;本地视频。 关键词之间用分号分隔,即:tensorrt; yolov5; 多线程多任务; QT智能监控平台; 视频监控; 录像回放; 电子地图; 并行检测; 网络流; 本地视频。,TensorRT加速Yolov5智能监控平台:多线程多任务并行处理,跨平台视频监控系统

    基于MATLAB的单容水箱水位模糊控制系统设计与仿真报告(含详细说明书及调试讲解),基于MATLAB的单容水箱水位模糊控制系统设计与仿真报告(含详细说明书及系统建模、模糊规则设定等),基于MATLAB

    基于MATLAB的单容水箱水位模糊控制系统设计与仿真报告(含详细说明书及调试讲解),基于MATLAB的单容水箱水位模糊控制系统设计与仿真报告(含详细说明书及系统建模、模糊规则设定等),基于MATLAB水箱水位模糊控制系统设计 matlab设计单容水箱,有仿真设计图+设计思路 有模糊设计面板 3个规则,带说明书[旺柴] 比较简单,能够出现跟随曲线 不 不,可讲解调试 7.5程序带简单说明书 15程序带详细说明书(系统建模+模糊规则设定+仿真分析)报告3k字 ,MATLAB; 水箱水位; 模糊控制系统设计; 仿真设计图; 设计思路; 模糊设计面板; 规则; 说明书; 跟随曲线; 系统建模; 仿真分析报告。,基于MATLAB的模糊控制系统设计:单容水箱水位管理新方案

    超火的开心锤锤动态表情包小程序源码-自动采集-免服务器和域名.zip

    超火的开心锤锤动态表情包小程序源码_自动采集_免服务器和域名 这款小程序里面的表情包人物的都是开心锤锤里面的人物 表情包是采集的!所以无需考虑表情包的问题 另外这款小程序是免服务器和域名的,所以运营成本是很低的 安装方法: 使用微信开发者工具打开改源码 然后设置合法域名(合法域名在压缩包里面) 然后上传提交审核就可以了

    电机工程学报论文模板,电机工程学报论文模板

    电机工程学报论文模板

    基于SSH的飞机订票系统,包括后台.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

    IT服务管理体系下运维服务报告控制程序规范与实施指南

    内容概要:本文档旨在建立和完善IT服务管理体系下的运维服务报告机制,详细描述了服务报告的管理和操作流程,明确了报告的目的、适用范围、职责分工和具体的工作步骤。文章首先概述了制定运维服务报告的目的——提供及时准确的数据以支持决策。随后,定义了报告的责任部门(主要为运维部),并且明确了不同类型报告(反应性报告、前置性报告、预先计划报告)的特点及其编制和发送规则。此外,还强调了关键绩效指标(KPIs)和服务报告的质量保证流程。最后,阐述了关于服务报告规划、变 更及年度评审的相关规定。 适合人群:企业运维团队成员、IT管理人员及其他相关领域的专业人士。 使用场景及目标:主要用于帮助企业在日常运营和技术维护活动中提高透明度和效率,确保与利益相关者的良好沟通和决策依据的可靠性;同时有助于推动服务质量的不断优化和改进。 阅读建议:建议关注报告类别和处理流程章节,以便更好地理解和运用此文档来提升自身的服务水平和支持能力。此外还需重视KPIs监控部分以衡量实际工作成效并对潜在风险予以警惕和防范措施部署。

    基于ssh网上书店.zip(毕设&课设&实训&大作业&竞赛&项目)

    项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

    人形机器人的软硬件项目立项书

    人形机器人的软硬件项目立项书

    Screenshot_2025-02-26-22-07-28-762_com.tencent.mm.jpg

    Screenshot_2025-02-26-22-07-28-762_com.tencent.mm.jpg

    Apache:Apache的安装与配置:6. Apache与域名绑定及SSL加密配置.pdf

    Apache:Apache的安装与配置:6. Apache与域名绑定及SSL加密配置.pdf

    基于粒子群优化算法的学习率及隐藏层参数调整堆叠自编码器用于数据回归预测(Matlab实现),基于粒子群优化堆叠自编码器(PSO-SAE)的数据回归预测算法参数优化与实现-学习率、隐藏层节点及最大训练

    基于粒子群优化算法的学习率及隐藏层参数调整堆叠自编码器用于数据回归预测(Matlab实现),基于粒子群优化堆叠自编码器(PSO-SAE)的数据回归预测算法参数优化与实现——学习率、隐藏层节点及最大训练次数调整,基于粒子群优化堆叠自编码器(PSO-SAE)的数据回归预测 优化参数为学习率,隐藏层节点个数,最大训练次数 matlab代码 ,核心关键词:PSO-SAE;数据回归预测;优化参数;学习率;隐藏层节点个数;最大训练次数;Matlab代码;粒子群优化;堆叠自编码器。,基于PSO-SAE算法的参数优化与数据回归预测的Matlab实现

    (程序、GUI、思路)MATLAB考勤系统设计.zip

    基于Matlab语言实现的设计项目 2、适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计中的部分功能,作为“参考资料”使用。 3、解压说明:本资源需要电脑端使用WinRAR、7zip等解压工具进行解压,没有解压工具的自行百度下载即可。 4、免责声明:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。由于作者大厂工作较忙,不提供答疑服务,如不存在资源缺失问题概不负责,谢谢理解。

    基于ncnn部署yolov5s(7.0)手势检测模型的安卓demo,支持hagrid数据集18类手势识别.zip(毕设&课设&实训&大作业&竞赛&项目)

    基于ncnn部署yolov5s(7.0)手势检测模型的安卓demo,支持hagrid数据集18类手势识别.zip(毕设&课设&实训&大作业&竞赛&项目)项目工程资源经过严格测试运行并且功能上ok,可复现复刻,拿到资料包后可实现复刻出一样的项目,本人系统开发经验充足(全栈),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助 【资源内容】:包含源码、工程文件、说明等。资源质量优质,放心下载使用!可实现复现;设计报告可借鉴此项目;该资源内项目代码都经过测试运行,功能ok 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 【提供帮助】:有任何使用上的问题欢迎随时与我联系,及时抽时间努力解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 质量优质,放心下载使用。下载后请首先打开说明文件(如有);项目工程可实现复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,网络商品/电子资源资料具可复制性不支持退款,勿用于商业用途。质量优质,放心下载使用。

    回归实战-新冠病毒感染人数预测(四)

    回归实战-新冠病毒感染人数预测(四)

    基于非线性PID控制策略的Buck-Boost变换器电路设计及仿真波形展示,基于非线性PID控制的Buck-Boost变换器动态响应优化及电路应用探究,buck-boost变器的非线性PID控制,主电

    基于非线性PID控制策略的Buck-Boost变换器电路设计及仿真波形展示,基于非线性PID控制的Buck-Boost变换器动态响应优化及电路应用探究,buck-boost变器的非线性PID控制,主电路也可以成别的电路。 在经典PID中引入了两个TD非线性跟踪微分器,构成了非线性PID控制器。 当TD的输入为方波时,TD的输出,跟踪方波信号也没有超调,仿真波形如下所示。 输入电压为20V,设置输出参考电压为10V,在非线性PID的控制下,输出很快为10V,且没有超调。 当加减载时,输出电压也一直为10V。 整个仿真全部采用模块搭建,没有用到S-Function。 ,buck-boost变换器; 非线性PID控制; TD非线性跟踪微分器; 方波输入; 仿真波形; 输入电压; 输出参考电压; 加载条件; 模块搭建,非线性PID控制的Buck-Boost变换器与多种电路应用研究

Global site tag (gtag.js) - Google Analytics