代码地址如下:
http://www.demodashi.com/demo/13184.html

一、前言

spring-boot项目整合redis很常见,Redis 一般上生产的时候都是以集群模式部署,也就是redis cluster。本demo以最干净简洁的方式整合spring-boot和redis cluster,方便需要的同学查阅。

二、项目结构

三、整合过程

本工程采用maven管理依赖,程序主框架采用spring-boot。

maven核心依赖

       <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>1.5.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-redis</artifactId>
<version>1.4.4.RELEASE</version>
</dependency>

工程主要包括4部分:

  • redis cluster配置类
  • spring-boot主文件
  • spring-boot配置文件
  • 单元测试

redis cluster配置类

  1. RedisClusterProperties

    把配置文件application.yml中redis cluster的配置项,映射到java对象中,方便直接使用
@Configuration
@ConfigurationProperties(prefix = "spring.redis.cluster")
public class RedisClusterProperties { //集群节点
private List<String> nodes=new ArrayList<>(); public List<String> getNodes() {
return nodes;
} public void setNodes(List<String> nodes) {
this.nodes = nodes;
}
}
  1. RedisClusterConfig

    redis cluster核心配置类,启动spring-boot项目的时候在这里实例化JedisCluster对象
 @Bean
public JedisCluster redisCluster(){ Set<HostAndPort> nodes = new HashSet<>();
for (String node:redisClusterProperties.getNodes()){
String[] parts= StringUtils.split(node,":");
Assert.state(parts.length==2, "redis node shoule be defined as 'host:port', not '" + Arrays.toString(parts) + "'");
nodes.add(new HostAndPort(parts[0], Integer.valueOf(parts[1])));
} return new JedisCluster(nodes);
}

spring-boot主文件

  1. ItcljApplication

    spring-boot工程启动文件,里面就是main方法,用于启动项目,项目启动过程中会自动扫描com.itclj包下的所有类,扫描到RedisClusterConfig类的时候,由于public JedisCluster redisCluster()方法加了@Bean注解,spring会自动执行该方法实例化一个JedisCluster对象放入spring上下文,以后需要使用的时候在需要的类直接自动注入即可。

spring-boot配置文件

  1. application.yml

    配置redis集群服务器地址
spring:
redis:
cluster:
nodes:
- redis1.msxf.lotest:7000
- redis1.msxf.lotest:7001
- redis2.msxf.lotest:7002
- redis2.msxf.lotest:7003
- redis3.msxf.lotest:7004
- redis3.msxf.lotest:7005

单元测试

  1. RedisTest

    采用junit作为单元测试工具,启动单元测试spring-boot会初始化整个项目,构建上下文,在这个过程中JedisCluster也将被实例化放入spring-boot上下文中,在单元测试类中直接使用,调用其get()方法获取redis集群的数据。

在正式写业务逻辑的时候用法也是一样的,在需要的类里面自动注入JedisCluster即可,然后直接使用,进行redis的增删改查。

    @Autowired
private JedisCluster jedisCluster; @Test
public void get(){
System.out.println("=============="+jedisCluster.get("youqian-spread-sync-to-mysql-date"));
}

四、运行代码

在idea里面,进入单元测试类RedisTest选中get()方法,有单击鼠标,run即可。然后在控制台输出从redis cluster中获取到的数据了。

spring-boot-redis-cluster简单整合例子

代码地址如下:
http://www.demodashi.com/demo/13184.html

注:本文著作权归作者,由demo大师代发,拒绝转载,转载需要作者授权

spring-boot-redis-cluster简单整合例子的更多相关文章

  1. Spring Boot Redis Cluster 实战干货

    添加配置信息 spring.redis: database: 0 # Redis数据库索引(默认为0) #host: 192.168.1.8 #port: 6379 password: 123456 ...

  2. Spring Boot Redis Cluster实战

    添加配置信息 spring.redis: database: 0 # Redis数据库索引(默认为0) #host: 192.168.1.8 #port: 6379 password: 123456 ...

  3. Spring Boot 学习笔记(六) 整合 RESTful 参数传递

    Spring Boot 学习笔记 源码地址 Spring Boot 学习笔记(一) hello world Spring Boot 学习笔记(二) 整合 log4j2 Spring Boot 学习笔记 ...

  4. spring boot与jdbcTemplate的整合案例2

    简单入门了spring boot后,接下来写写跟数据库打交道的案例.博文采用spring的jdbcTemplate工具类与数据库打交道. 下面是搭建的springbootJDBC的项目的总体架构图: ...

  5. spring boot + redis 实现session共享

    这次带来的是spring boot + redis 实现session共享的教程. 在spring boot的文档中,告诉我们添加@EnableRedisHttpSession来开启spring se ...

  6. Spring Boot 项目学习 (三) Spring Boot + Redis 搭建

    0 引言 本文主要介绍 Spring Boot 中 Redis 的配置和基本使用. 1 配置 Redis 1. 修改pom.xml,添加Redis依赖 <!-- Spring Boot Redi ...

  7. Spring Boot Redis 集成配置(转)

    Spring Boot Redis 集成配置 .embody{ padding:10px 10px 10px; margin:0 -20px; border-bottom:solid 1px #ede ...

  8. Spring Boot Hello World (restful接口)例子

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

  9. spring boot redis 缓存(cache)集成

    Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 sp ...

随机推荐

  1. 【互动问答分享】第18期决胜云计算大数据时代Spark亚太研究院公益大讲堂

    Q1:Master和Driver的是同一个东西吗? 两者不是同一个东西,在Standalone模式下Master是用于集群资源管理和调度的,而Driver适用于指挥Worker上的Executor通过 ...

  2. 【转-记】mysql总结

    1 | 查询所有数据  select * from Info 查所有数据 select Code,Name from Info 查特定列    2 | 根据条件查  select * from Inf ...

  3. [centos6.5]添加eclipse快捷方式

    [Desktop Entry] Version=buzhidao Encoding=UTF-8 Name=eclipse Comment=eclipse-for-php Exec=/opt/eclip ...

  4. 【Linux命令】du -h --max-depth=1 /usr/local/

    查看文件夹中各文件(夹)的大小 例如 du -h --max-depth=1 /usr/local/ 应用:比如mysql 无法启动,提示:ERROR! Manager of pid-file qui ...

  5. shell脚本学习(二)

    shell传递参数 shell脚本在执行是可以传递参数,脚本内获取参数的格式为:$n,n为一个数字,1为第一个参数,2为第二个参数,以此类推 其中,$0代表了要执行的文件名 实例: 代码如下: #!/ ...

  6. C++-二维vector初始化大小方法-备忘

    来源: C++——二维vector初始化大小方法 1.直接用初始化方法 名字为vec,大小为n*m,初始值为0的二维vector. vector<vector<)); 2.用resize( ...

  7. python3爬虫爬取煎蛋网妹纸图片(上篇)

    其实之前实现过这个功能,是使用selenium模拟浏览器页面点击来完成的,但是效率实际上相对来说较低.本次以解密参数来完成爬取的过程. 首先打开煎蛋网http://jandan.net/ooxx,查看 ...

  8. 线段树+Dfs序【CF620E】New Year Tree

    Description 你有一棵以1为根的有根树,有n个点,每个节点初始有一个颜色c[i]. 有两种操作: 1 v c 将以v为根的子树中所有点颜色更改为c 2 v 查询以v为根的子树中的节点有多少种 ...

  9. 51单片机软件I2C驱动中的CY

    做一个MSP430的项目,虽然430内部有硬件I2C的模块,略难,准备直接移植51的..碰到一句代码 dat <<= 1; //移出数据的最高位 pSDA = CY; //送数据口 dig ...

  10. android多线程-AsyncTask之工作原理深入解析(上)

    关联文章: Android 多线程之HandlerThread 完全详解 Android 多线程之IntentService 完全详解 android多线程-AsyncTask之工作原理深入解析(上) ...