Back to Redisson

Microservices Integration

docs/microservices-integration.md

latest12.2 KB
Original Source

Spring Boot

For Spring Boot usage please refer to Spring Boot article.

Micronaut

Redisson integrates with Micronaut framework. It implements Micronaut Cache and Micronaut Session.

Supports Micronaut 2.0.x - 4.x.x

Usage

  1. Add redisson-micronaut dependency into your project:

    <div class="grid cards" markdown>
    • Redisson PRO

      Maven

      xml
      <dependency>
          <groupId>pro.redisson</groupId>
          <!-- for Micronaut v2.0.x - v2.5.x -->
          <artifactId>redisson-micronaut-20</artifactId>
          <!-- for Micronaut v3.x.x -->
          <artifactId>redisson-micronaut-30</artifactId>
          <!-- for Micronaut v4.x.x -->
          <artifactId>redisson-micronaut-40</artifactId>
          <version>xVERSIONx</version>
      </dependency>
      

      Gradle

      groovy
      // for Micronaut v2.0.x - v2.5.x
      compile 'pro.redisson:redisson-micronaut-20:xVERSIONx'
      // for Micronaut v3.x.x
      compile 'pro.redisson:redisson-micronaut-30:xVERSIONx'
      // for Micronaut v4.x.x
      compile 'pro.redisson:redisson-micronaut-40:xVERSIONx'
      

      License key configuration

    • Community Edition

      Maven

      xml
      <dependency>
          <groupId>org.redisson</groupId>
          <!-- for Micronaut v2.0.x - v2.5.x -->
          <artifactId>redisson-micronaut-20</artifactId>
          <!-- for Micronaut v3.x.x -->
          <artifactId>redisson-micronaut-30</artifactId>
          <!-- for Micronaut v4.x.x -->
          <artifactId>redisson-micronaut-40</artifactId>
          <version>xVERSIONx</version>
      </dependency>
      

      Gradle

      groovy
      // for Micronaut v2.0.x - v2.5.x
      compile 'org.redisson:redisson-micronaut-20:xVERSIONx'
      // for Micronaut v3.x.x
      compile 'org.redisson:redisson-micronaut-30:xVERSIONx'
      // for Micronaut v4.x.x
      compile 'org.redisson:redisson-micronaut-40:xVERSIONx'
      
    </div> [Redisson PRO vs. Community Edition ➜](https://redisson.pro/feature-comparison.html)
  2. Add settings into application.yml file

    Config structure is a Redisson YAML configuration - single mode, replicated mode, cluster mode, sentinel mode, proxy mode, multi cluster mode, multi sentinel mode

    !!! note

     Setting names in camel case should be joined with hyphens (-).
    

    Config example:

    yaml
    redisson:
      single-server-config:
         address: "redis://127.0.0.1:6379"
      threads: 16
      netty-threads: 32
    

Cache

For Micronaut Cache usage please refer to Micronaut Cache article.

Session

Redisson provides Micronanut Session store implementation. Extra settings to HttpSessionConfiguration object:

Setting nameTypeDescription
micronaut.session.http.redisson.enabledjava.lang.BooleanEnables Session store
micronaut.session.http.redisson.key-prefixjava.lang.IntegerDefines string prefix applied to all objects stored in Redis.
micronaut.session.http.redisson.codecjava.lang.ClassData codec applied to cache entries. Default is Kryo5Codec codec.
micronaut.session.http.redisson.update-modejava.lang.StringDefines session attributes update mode.
WRITE_BEHIND - session changes stored asynchronously.
AFTER_REQUEST - session changes stored only on SessionStore#save(Session) method invocation. Default value.
micronaut.session.http.redisson.broadcastSessionUpdatesjava.lang.BooleanDefines broadcasting of session updates across all micronaut services.

Config example:

yaml
micronaut:
    session:
        http:
            redisson:
                enabled: true
                update-mode: "WRITE_BEHIND"
                broadcast-session-updates: false

Quarkus

Redisson integrates with Quarkus framework and implements Quarkus Cache.

Supports Quarkus 1.6.x - 3.x.x

??? note "Native image with RemoteService. Click to expand" To use RemoteService in native image add dynamic-proxy.json and reflection-config.json files in quarkus.native.additional-build-args setting.

```
-H:DynamicProxyConfigurationResources=dynamic-proxy.json,-H:ReflectionConfigurationFiles=reflection-config.json
```

dynamic-proxy.json:
```
[
    ["<Remote Service interface name>"]
]
```

reflection-config.json:
```
[
   {
     "name":"<Remote Service interface name>",
     "allDeclaredMethods":true
   }
]
``` 

Usage

  1. Add redisson-quarkus dependency into your project:

    <div class="grid cards" markdown>
    • Redisson PRO

      Maven

      xml
      <dependency>
          <groupId>pro.redisson</groupId>
          <!-- for Quarkus v1.6.x - v1.13.x -->
          <artifactId>redisson-quarkus-16</artifactId>
          <!-- for Quarkus v2.x.x -->
          <artifactId>redisson-quarkus-20</artifactId>
          <!-- for Quarkus v3.x.x - v3.29.x -->
          <artifactId>redisson-quarkus-30</artifactId>
          <!-- for Quarkus v3.30.x+ -->
          <artifactId>redisson-quarkus-33</artifactId>
          <version>xVERSIONx</version>
      </dependency>
      

      Gradle

      groovy
      // for Quarkus v1.6.x - v1.13.x
      compile 'pro.redisson:redisson-quarkus-16:xVERSIONx'
      // for Quarkus v2.x.x
      compile 'pro.redisson:redisson-quarkus-20:xVERSIONx'
      // for Quarkus v3.x.x - v3.29.x
      compile 'pro.redisson:redisson-quarkus-30:xVERSIONx'
      // for Quarkus v3.30.x+
      compile 'pro.redisson:redisson-quarkus-33:xVERSIONx'
      

      License key configuration

    • Community Edition

      Maven

      xml
      <dependency>
          <groupId>org.redisson</groupId>
          <!-- for Quarkus v1.6.x - v1.13.x -->
          <artifactId>redisson-quarkus-16</artifactId>
          <!-- for Quarkus v2.x.x -->
          <artifactId>redisson-quarkus-20</artifactId>
          <!-- for Quarkus v3.x.x - v3.29.x -->
          <artifactId>redisson-quarkus-30</artifactId>
          <!-- for Quarkus v3.30.x+ -->
          <artifactId>redisson-quarkus-33</artifactId>
          <version>xVERSIONx</version>
      </dependency>
      

      Gradle

      groovy
      // for Quarkus v1.6.x - v1.13.x
      compile 'org.redisson:redisson-quarkus-16:xVERSIONx'
      // for Quarkus v2.x.x
      compile 'org.redisson:redisson-quarkus-20:xVERSIONx'
      // for Quarkus v3.x.x - v3.29.x
      compile 'pro.redisson:redisson-quarkus-30:xVERSIONx'
      // for Quarkus v3.30.x+
      compile 'pro.redisson:redisson-quarkus-33:xVERSIONx'
      
    </div> [Redisson PRO vs. Community Edition ➜](https://redisson.pro/feature-comparison.html)
  2. Add settings into application.properties file

    Config structure is a flat Redisson YAML configuration - single mode, replicated mode, cluster mode, sentinel mode, proxy mode, multi cluster mode, multi sentinel mode

    NOTE: Setting names in camel case should be joined with hyphens (-).

    Below is the configuration example for a single Redis or Valkey node setup.

    quarkus.redisson.single-server-config.address=redis://localhost:6379
    quarkus.redisson.single-server-config.password=null
    quarkus.redisson.threads=16
    quarkus.redisson.netty-threads=32
    

    Use quarkus.redisson.file setting to specify path to a config file.

  3. Use Redisson

    java
    @Inject
    RedissonClient redisson;
    

Cache

For Quarkus Cache usage please refer to Quarkus Cache article.

Helidon

Redisson implements Helidon CDI extension for Redis.

Supports Helidon 1.4.x - 4.x.x

Usage

  1. Add redisson-helidon dependency into your project:

    <div class="grid cards" markdown>
    • Redisson PRO

      Maven

      xml
      <dependency>
          <groupId>pro.redisson</groupId>
          <!-- for Helidon v1.4.x - v2.5.x -->
          <artifactId>redisson-helidon-20</artifactId>
          <!-- for Helidon v3.x.x -->
          <artifactId>redisson-helidon-30</artifactId>
          <!-- for Helidon v4.x.x -->
          <artifactId>redisson-helidon-40</artifactId>
          <version>xVERSIONx</version>
      </dependency>
      

      Gradle

      groovy
      // for Helidon v1.4.x - v2.5.x
      compile 'pro.redisson:redisson-helidon-20:xVERSIONx'
      // for Helidon v3.x.x
      compile 'pro.redisson:redisson-helidon-30:xVERSIONx'
      // for Helidon v4.x.x
      compile 'pro.redisson:redisson-helidon-40:xVERSIONx'
      

      License key configuration

    • Community Edition

      Maven

      xml
      <dependency>
          <groupId>org.redisson</groupId>
          <!-- for Quarkus v1.6.x - v1.13.x -->
          <artifactId>redisson-quarkus-16</artifactId>
          <!-- for Quarkus v2.x.x -->
          <artifactId>redisson-quarkus-20</artifactId>
          <!-- for Quarkus v3.x.x -->
          <artifactId>redisson-quarkus-30</artifactId>
          <version>xVERSIONx</version>
      </dependency>
      

      Gradle

      groovy
      // for Helidon v1.4.x - v2.5.x
      compile 'org.redisson:redisson-helidon-20:xVERSIONx'
      // for Helidon v3.x.x
      compile 'org.redisson:redisson-helidon-30:xVERSIONx'
      // for Helidon v4.x.x
      compile 'org.redisson:redisson-helidon-40:xVERSIONx'
      
    </div> [Redisson PRO vs. Community Edition ➜](https://redisson.pro/feature-comparison.html)
  2. Add settings into META-INF/microprofile-config.properties file

    Config structure is a flat Redisson YAML configuration - single mode, replicated mode, cluster mode, sentinel mode, proxy mode, multi cluster mode, multi sentinel mode

    Below is the configuration example for Redisson instance named simple.

    org.redisson.Redisson.simple.singleServerConfig.address=redis://127.0.0.1:6379
    org.redisson.Redisson.simple.singleServerConfig.connectionPoolSize=64
    org.redisson.Redisson.simple.threads=16
    org.redisson.Redisson.simple.nettyThreads=32
    
  3. Use Redisson

    java
    @Inject
    @Named("simple")
    private RedissonClient redisson;
    

    For injection without @Named annotation use instance name - default.