<mark>此插件，主要社区贡献人（Sorghum）</mark>

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

#### 1、描述

数据扩展插件，基于 redisson 封装（[代码仓库](https://github.com/redisson/redisson)），为 Solon Data 提供了 redis 的操作能力扩展。<mark>（v2.3.1 之后支持）</mark>


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

#### 2、配置示例

详细的可配置属性名，参考官网 [https://redisson.org/docs/](https://redisson.org/docs/) 。


* 配置风格1：将配置内容独立为一个资源文件

```yaml
redis.ds1:
  file: "classpath:redisson.yml"
```

redisson.yml （名字随意）

```yaml
singleServerConfig:
  password: "123456"
  address: "redis://localhost:6379"
  database: 0
```

* 配置风格2：将配置做为主配置的内容<mark>（注意 "|" 符号，及其位置）</mark>

```yaml
redis.ds2:
  config: |
    singleServerConfig:
      password: "123456"
      address: "redis://localhost:6379"
      database: 0
```

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

#### 3、应用示例

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

```java
@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 配置，做更多的事

* 结合 [org.noear:solon.cache.redisson](/article/236) 插件，创建缓存服务

```java
@Configuration
public class Config {
    @Bean
    public CacheService demo2(@Inject RedissonClient client) {
        return new RedissonCacheService(client, 30);
    }
}
```

* 结合 [cn.dev33:sa-token-redisson](https://gitee.com/dromara/sa-token/tree/dev/sa-token-plugin/sa-token-redisson) 插件，创建 sa-token dao

```java
@Configuration
public class Config {
    @Bean
    public SaTokenDao saTokenDaoInit(RedissonClient redissonClient) {
      return new SaTokenDaoForRedisson(redissonClient);
    }
}
```


#### 4、参考示例

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




