SpringBoot2.x +redis5.x读写分离配置

redis的主从复制我就不赘述了,各大博客都有写怎么配置的,我们来讲SpringBoot怎么配置读写分离:
方法应该有多种:可能的实现有利用AOP动态的获取redis连接工厂并注入对应的实例
本文的实现比较呆板,读写分离,主redis负责写,从redis负责读,有两个java配置类如下:

附加:java Config(java配置类)是Spring的一种编码风格,其他两种编码风格为XML和注解,Java Config风格在SpringBoot中搭配注解风格同时使用;

Maven需要引入的依赖:

 	 <!--redis依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>
	<!-- redis集群使用 -->
        <dependency>
            <!-- springboot的parents依赖中有对版本号的控制,此处不需要添加版本号相关信息 -->
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>

主redis对应的配置类:


package com.wang.ms.config;

import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Springboot可以通过Druid实现redis和mysql的分离,下面是一个示例: 1. 在pom.xml中添加依赖: <dependency> <groupId>com.alibaba</groupId> <artifactId>druid-spring-boot-starter</artifactId> <version>1.1.10</version> </dependency> 2. 在application.yml中配置redis和mysql的分离: spring: datasource: druid: # Redis数据源 redis: url: jdbc:redis://127.0.0.1:6379/0 driver-class-name: com.alibaba.druid.pool.DruidDataSource username: root password: root # MySQL数据源 mysql: url: jdbc:mysql://127.0.0.1:3306/test driver-class-name: com.alibaba.druid.pool.DruidDataSource username: root password: root 3. 在Springboot启动类中添加@EnableDruid注解: @SpringBootApplication @EnableDruid public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } 4. 配置Druid数据源: @Configuration public class DruidConfig { @Bean @ConfigurationProperties(prefix = "spring.datasource.druid.redis") public DataSource redisDataSource() { return DruidDataSourceBuilder.create().build(); } @Bean @ConfigurationProperties(prefix = "spring.datasource.druid.mysql") public DataSource mysqlDataSource() { return DruidDataSourceBuilder.create().build(); } } 5. 在Service层中实现分离: @Service public class UserService { @Autowired private DataSource redisDataSource; @Autowired private DataSource mysqlDataSource; public void saveUser() { // 使用MySQL数据源入数据 DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.MYSQL); // ... // 使用Redis数据源取数据 DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.REDIS); // ... } }

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值