Solon v3.0.6

redisson-solon-plugin

</> markdown

此插件,由社区成员(Sorghum)贡献

<dependency>
    <groupId>org.noear</groupId>
    <artifactId>redisson-solon-plugin</artifactId>
</dependency>

1、描述

数据扩展插件,基于 redisson 封装(代码仓库),为 Solon Data 提供了 redis 的操作能力扩展。(v2.3.1 之后支持)

//这个插件,主要是为构建客户端提供小便利。其实也可以不用适配,直接使用。

2、配置示例

详细的可配置属性名,参考官网 https://redisson.org/docs/

  • 配置风格1:将配置内容独立为一个资源文件
redis.ds1:
  file: "classpath:redisson.yml"

redisson.yml (名字随意)

singleServerConfig:
  password: "123456"
  address: "redis://localhost:6379"
  database: 0
  • 配置风格2:将配置做为主配置的内容(注意 "|" 符号,及其位置)
redis.ds2:
  config: |
    singleServerConfig:
      password: "123456"
      address: "redis://localhost:6379"
      database: 0

redisson 有很多 codec ,比如:JacksonCodec、Kryo5Codec 等。需要配置自己需要的编码器。

3、应用示例

v2.8.5 后 RedissonSupplier 标为弃用,由 RedissonClientOriginalSupplier 替代

@Configuration
public class Config {
    @Bean(value = "redisDs1", typed = true)
    public RedissonClient demo1(@Inject("${redis.ds1}") RedissonClientOriginalSupplier supplier) {
        return supplier.get();
    }

    @Bean("redisDs2")
    public RedissonClient demo2(@Inject("${redis.ds2}") RedissonClientOriginalSupplier supplier) {
        return supplier.get();
    }
}

@Component
public class DemoService {
    
    @Inject //@Inject("redisDs1")
    RedissonClient demo1;

    @Inject("redisDs2")
    RedissonClient demo2;
    
}

4、二次应用

可以借用 RedissonClient,再加工别的服务。相当于用一份 redis 配置,做更多的事

@Configuration
public class Config {
    @Bean
    public CacheService demo2(@Inject RedissonClient client) {
        return new RedissonCacheService(client, 30);
    }
}
@Configuration
public class Config {
    @Bean
    public SaTokenDao saTokenDaoInit(RedissonClient redissonClient) {
      return new SaTokenDaoRedissonJackson(redissonClient);
    }
}

4、参考示例

https://gitee.com/noear/solon-examples/tree/main/4.Solon-Data/demo4101-redisson