Hello 大家好,我是鸭血粉丝,Redis
想必大家一定不会陌生,平常工作中或多或少都会用到,不管是用来存储登录信息还是用来缓存热点数据,对我们来说都是很有帮助的。但是 Redis
的集群估计并不是每个人都会用到,因为很多业务场景或者系统都是一些简单的管理系统,并不会需要用到 Redis
的集群环境。
阿粉之前也是这样,项目中用的的 Redis
是个单机环境,但是最近随着终端量的上升,慢慢的发现单机已经快支撑不住的,所以思考再三决定将 Redis
的环境升级成集群。下面阿粉给大家介绍一下在升级的过程中项目中需要调整的地方,这篇文章不涉及集群的搭建和配置,感兴趣的同学自行搜索。
配置参数
因为这篇文章不介绍 Redis
集群的搭建,这里我们假设已经有了一个 Redis
的集群环境,我们项目中需要调整以下几个部分
- 修改配置参数,集群的节点和密码配置;
- 确保引入的
Jedis
版本支持设置密码,spring-data-redis
1.8 以上,SpringBoot
1.5 以上才支持设置密码; - 注入
RedisTemplate
; - 编写工具类;
修改配置参数
1 |
|
引入依赖(如果需要)
确保 SpringBoot
的版本大于 1.4.x 如果不是的话,采用如下配置,先排除 SpringBoot
中旧版本 Jedis
和 spring-data-redis
,再依赖高版本的 Jedis
和 spring-data-redis
。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
<!-- 1.4 版本 SpringBoot 中 Jedis 不支持密码登录 -->
<exclusions>
<exclusion>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
</exclusion>
<exclusion>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- 手动依赖 Jedis 和 spring-data-redis-->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.8.0.RELEASE</version>
</dependency>
注入 RedisTemplate
注入 RedisTemplate
我们需要三个组件,分别是JedisConnectionFactory
、RedisClusterConfiguration
、JedisPoolConfig
,下面是注入RedisTempalte
的代码。先根据配置创建 JedisConnectFactory
同时需要配置 RedisClusterConfiguration
、JedisPoolConfig
,最后将JedisConnectionFactory
返回用于创建RedisTemplate
1 |
|
相关代码已经提交到GitHub,公众号回复【源码仓库】即可获取。这里一定要注意 Jedis 的 Spring-data-redis 的版本支持设置密码,毕竟生产环境是一定要配置密码的。
编写工具类
其实到这里基本上已经完成了,我们可以看到 SpringBoot
项目接入 Redis
集群还是比较简单的,而且如果之前单机环境就是采用RedisTemplate
的话,现在也就不需要编写工具类,之前的操作依旧有效。不过作为贴心的阿粉,我还是给大家准备了一个工具类,代码太长,我只贴部分,需要完成代码的可以到公众号回复【源码仓库】获取。
1 |
|
上面随机列了几个方法,更多方案等待你的探索。
总结
今天阿粉给大家介绍了一下 SpringBoot
项目如何接入 Redis
集群,需要的朋友可以参考一下,不过阿粉还是要说一下,系统的设计不能过于冗余,如果短期内还能支撑业务的发展,那就暂时不要考虑太复杂,毕竟系统的架构是需要不断的完善的,不可能刚开始的时候就设计出一套很完善的系统框架。随着业务的不断发展,当真正发现单机Redis
已经无法满足业务需求的时候再接入也不迟!
写在最后
最后邀请你加入我们的知识星球,这里有 1800+ 优秀的人与你一起进步,如果你是小白那你是稳赚了,很多业内经验和干活分享给你;如果你是大佬,那可以进来我们一起交流分享你的经验,说不定日后我们还可以有合作,给你的人生多一个可能。