今天找了半天没找到线程的,网上都是多个Redis示例。最还还是自己想办法实现了
两个Redis集群作为数据源 + 自定义缓存注解
不会做的是否发现好tm难。都不知道怎么动手。做完之后,发现原理其实特别简单。很容易就能实现。分两部分原理和示例代码部分
原理解析:
- 配置两个数据源,生成两个redisTemplate (这个配置是参考我之前配置单个集群的时候,从人家的data-redis里面复制出来的,也可能是看了那篇博客。我不清楚了)
- 分别操作这两个tempLate.
- 我这里是利用AOP+注解的方式。拦截所有配置了这个注解的方法。然后先通过template请求Redis 有结果直接返回。没有就查库,然后将结果放到Redis。再返回
- 我这里利用两个库的用途是相同场景不同城市使用不同的Redis数据源。 有的场景是不同业务使用不同数据源。那样应该实现起来更简单
代码示例:
- 需要的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
- 注意启动类要关掉redis的自动配置
@SpringBootApplication(exclude = {RedisAutoConfiguration.class, RedisReactiveAutoConfiguration.class}) - 主配置类
@Configuration
@EnableCaching
public class RedisConfig2 {
@Autowired
RedisClusterNode redisClusterNode;
@Bean(name = "jtClusterRedisConnectionFactory")
public LettuceConnectionFactory getJtRedisConnectionFactory() {
return new LettuceConnectionFactory(new RedisClusterConfiguration(redisClusterNode.getJtNodes()));
}
@Bean(name = "szClusterRedisConnectionFactory")
public LettuceConnectionFactory getSzRedisConnectionFactory() {
return new LettuceConnectionFactory(new RedisClusterConfiguration(redisClusterNode.getSzNodes()));
}
@Bean(name = "redisTemplate")
@Qualifier("jtClusterRedisConnectionFactory")
public RedisTemplate redisTemplate(LettuceConnectionFactory jtClusterRedisConnectionFactory){
return getRedisTemplate(jtClusterRedisConnectionFactory);
}
@Bean(name = "szRedisTemplate")
@Quali

最低0.47元/天 解锁文章
4082

被折叠的 条评论
为什么被折叠?



