You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
redisson/redisson-micronaut
Nikita Koksharov 72332bcd20 refactoring 4 years ago
..
src refactoring 4 years ago
README.md Feature - Micronaut integration #3657 4 years ago
pom.xml Feature - Micronaut integration #3657 4 years ago

README.md

Redis integration with Micronaut

Integrates Redisson with Micronaut framework.

Supports Micronaut 2.0.x - 2.5.x

Usage

1. Add redisson-micronaut dependency into your project:

Maven

<dependency>
    <groupId>org.redisson</groupId>
    <artifactId>redisson-micronaut</artifactId>
    <version>3.16.0</version>
</dependency>

Gradle

compile 'org.redisson:redisson-micronaut:3.16.0'

2. Add settings into application.yml file

2.1 Redisson settings

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

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

Config example:

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

2.2 Cache settings

Setting name Type Description
redisson.caches.*.max-size java.lang.Integer Max size of this cache. Superfluous elements are evicted using LRU algorithm. If 0 the cache is unbounded (default).
redisson.caches.*.codec java.lang.Class Redis data codec applied to cache entries. Default is MarshallingCodec codec.
redisson.caches.*.expire-after-write java.time.Duration Cache entry time to live duration applied after each write operation.
redisson.caches.*.expire-after-access java.time.Duration Cache entry time to live duration applied after each read operation.

Config example:

redisson:
  single-server-config:
    address: "redis://127.0.0.1:6379"
  caches:
    my-cache1: 
      expire-after-write: 10s
      expire-after-access: 3s
      max-size: 1000
      codec: org.redisson.codec.MarshallingCodec
    my-cache2: 
      expire-after-write: 200s
      expire-after-access: 30s

2.3 Session settings

Session store implementation. Additional settings to HttpSessionConfiguration object:

Setting name Type Description
micronaut.session.http.redisson.enabled java.lang.Boolean Enables Session store
micronaut.session.http.redisson.key-prefix java.lang.Integer Defines string prefix applied to all objects stored in Redis.
micronaut.session.http.redisson.codec java.lang.Class Redis data codec applied to cache entries. Default is MarshallingCodec codec.
micronaut.session.http.redisson.update-mode java.lang.String Defines 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.broadcastSessionUpdates java.lang.Boolean Defines broadcasting of session updates across all micronaut services.

Config example:

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

3 Use Redisson

3.1 Redisson instance

@Inject
private RedissonClient redisson;

3.2 Cache

@Singleton 
@CacheConfig("my-cache1") 
public class CarsService {

    @Cacheable
    public List<String> listAll() {
        // ...
    }
    
    @CachePut(parameters = {"type"}) 
    public List<String> addCar(String type, String description) {
        // ...
    }
    
    @CacheInvalidate(parameters = {"type"}) 
    public void removeCar(String type, String description) {
        // ...
    }    
}

Consider Redisson PRO version for ultra-fast performance and support by SLA.