Redis多数据源,看这篇就够了

背景

Redis多数据源常见的场景:

  1. 分区数据处理:当数据量增长时,单个Redis实例可能无法处理所有的数据。通过使用多个Redis数据源,可以将数据分区存储在不同的实例中,使得数据处理更加高效。
  2. 多租户应用程序:对于多租户应用程序,每个租户可以拥有自己的Redis数据源,以确保数据隔离和安全性。

目前在网上的一些解决方案无法完全满足特定需求,例如不支持动态添加或更新数据源、缺乏数据源的负载均衡功能,或者不能开箱即用需要自行封装一些常用方法。

为了解决这些问题,封装了一个轻量级的Redis多数据源库,已在生产环境中长时间稳定运行。现分享出来,希望这个库能对你的项目有所帮助。

https://github.com/codebaorg/redis-keeper

如果这篇文章帮助到了你,欢迎star一下,感谢你的支持。

特征

  • 基于redisson封装,保留redisson的所有强大功能。
  • 支持redis多数据源配置的实时更新。
  • 支持redis多数据源的负载均衡。
  • 支持redis数据源的“只读”、“只写”、“读写”、“跳过”的状态切换。
  • 提供 130+ 常用的redis操作方法,包括但不限string、list、hash、set、zset、geo、bitmap、hyberloglog、分布式锁、布隆过滤器、限流等。

快速开始

  1. 添加maven依赖
<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson</artifactId>
    <version>3.15.5</version>
    <scope>provided</scope>
</dependency>

<dependency>
	<groupId>org.codeba</groupId>
	<artifactId>redis-keeper-spring-boot-starter</artifactId>
	<version>2024.0.0</version>
</dependency>
  1. springboot的配置文件,添加redis多数据源的配置
redis-keeper:
  redis:
    datasource:
      ds1: // 此处的命名可以随便取,但是要保证唯一不重复
        host: localhost
        port: 6379
        database: 0
        password: yourPass
      
      ds2: // 此处的命名可以随便取,但是要保证唯一不重复
        host: localhost
        port: 6379
        database: 0
        password: yourPass
        
  1. 按自定义的数据源别名获取相应的cacheTemplate,执行redis命令。

方式一:通过CacheTemplateProvider获取cacheTemplate,示例如下:

public class AppTest {
   

    @Autowired
    private CacheTemplateProvider<CacheTemplate> provider;

    public void test() {
   
        final Optional<CacheTemplate> templateOptional = provider.getTemplate("ds1");

        if (templateOptional.isPresent()) {
   
            final CacheTemplate cacheTemplate = templateOptional.get();
            String key = "foo";
            String value = "bar";
            cacheTemplate.set(key, value);
        }
    }
    
}

方式二:通过代理类CacheTemplateProxy获取cacheTemplate,示例如下:

public class AppTest {
   

    private final CacheTemplate cacheTemplate = CacheTemplateProxy.asTemplate("ds1")
  • 34
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值