Go to file
Nikita Koksharov 3199095cd1
Merge pull request from derTobsch/cleanup/use-enforcer-plugin-instead-of-prerequisites
Use enforcer plugin instead of prerequisites
.github Add github actions caching step
redisson javadocs fixed
redisson-all Use enforcer plugin instead of prerequisites
redisson-hibernate Update README.md
redisson-mybatis Update README.md
redisson-spring-boot-starter Merge branch 'master' of github.com:redisson/redisson
redisson-spring-data Update README.md
redisson-tomcat [maven-release-plugin] prepare for next development iteration
.gitignore
CHANGELOG.md Update CHANGELOG.md
DCO.txt DCO file added
LICENSE.txt
README.md Update README.md
checkstyle.xml
header.txt license header updated
pom.xml Use enforcer plugin instead of prerequisites

README.md

Redisson - Redis Java client
with features of In-Memory Data Grid

Quick start | Documentation | Javadocs | Changelog | Code examples | FAQs | Report an issue

Based on high-performance async and lock-free Java Redis client and Netty framework.
JDK compatibility: 1.8 - 14, Android

Features

Success stories

Moving from Hazelcast to Redis / Datorama

Migrating from Hazelcast to Redis / Halodoc

Distributed Locking with Redis (Migration from Hazelcast) / ContaAzul

Migrating from Coherence to Redis

Quick start

Maven

<dependency>
   <groupId>org.redisson</groupId>
   <artifactId>redisson</artifactId>
   <version>3.13.1</version>
</dependency>  

Gradle

compile 'org.redisson:redisson:3.13.1'  

SBT

libraryDependencies += "org.redisson" % "redisson" % "3.13.1"

Java

// 1. Create config object
Config config = new Config();
config.useClusterServers()
       // use "rediss://" for SSL connection
      .addNodeAddress("redis://127.0.0.1:7181");

// or read config from file
config = Config.fromYAML(new File("config-file.yaml")); 
// 2. Create Redisson instance

// Sync and Async API
RedissonClient redisson = Redisson.create(config);

// Reactive API
RedissonReactiveClient redissonReactive = Redisson.createReactive(config);

// RxJava2 API
RedissonRxClient redissonRx = Redisson.createRx(config);
// 3. Get Redis based Map
RMap<MyKey, MyValue> map = redisson.getMap("myMap");

RMapReactive<MyKey, MyValue> mapReactive = redissonReactive.getMap("myMap");

RMapRx<MyKey, MyValue> mapRx = redissonRx.getMap("myMap");
// 4. Get Redis based Lock
RLock lock = redisson.getLock("myLock");

RLockReactive lockReactive = redissonReactive.getLock("myLock");

RLockRx lockRx = redissonRx.getLock("myLock");
// 4. Get Redis based ExecutorService
RExecutorService executor = redisson.getExecutorService("myExecutorService");

// over 50 Redis based Java objects and services ...

Consider Redisson PRO version for advanced features and support by SLA.

Downloads

Redisson 3.13.1, Redisson node 3.13.1

FAQs

Q: I saw a RedisTimeOutException, What does it mean? What shall I do? Can Redisson Team fix it?

Q: When do I need to shut down a Redisson instance, at the end of each request or the end of the life of a thread?

Q: In MapCache/SetCache/SpringCache/JCache, I have set an expiry time to an entry, why is it still in Redis when it should be disappeared?

Q: How can I perform Pipelining/Transaction through Redisson?

Q: Is Redisson thread safe? Can I share an instance of it between different threads?

Q: Can I use different encoder/decoders for different tasks?