Go to file
Nikita Koksharov 3398510220 license plugin refactoring
.github Update bug_report.yml
redisson license plugin refactoring
redisson-all [maven-release-plugin] prepare for next development iteration
redisson-helidon license plugin refactoring
redisson-hibernate license plugin refactoring
redisson-micronaut license plugin refactoring
redisson-mybatis license plugin refactoring
redisson-quarkus version updated
redisson-spring-boot-starter license plugin refactoring
redisson-spring-data license plugin refactoring
redisson-tomcat license plugin refactoring
.gitignore Remove duplicate items in `.gitignore`
CHANGELOG.md Update CHANGELOG.md
DCO.txt
LICENSE.txt
README.md Update README.md
checkstyle-suppressions.xml checkstyle plugin definition refactoring
checkstyle.xml checkstyle plugin definition refactoring
header.txt license updated
pom.xml license plugin refactoring

README.md

Redisson - Easy Redis Java client
and Real-Time Data Platform

Maven Central JavaDoc License

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

Based on high-performance async and lock-free Java Redis client and Netty framework.

Features

Comparing solutions

Redisson vs Jedis

Redisson vs Lettuce

Redis vs Apache Ignite

Redis vs Hazelcast

Redis vs Ehcache

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.35.0</version>
</dependency>  

Gradle

compile 'org.redisson:redisson:3.35.0'  

SBT

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

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.reactive();

// RxJava3 API
RedissonRxClient redissonRx = redisson.rxJava();
// 3. Get Redis based implementation of java.util.concurrent.ConcurrentMap
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 implementation of java.util.concurrent.locks.Lock
RLock lock = redisson.getLock("myLock");

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

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

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

Upgrade to Redisson PRO with advanced features.

Downloads

Redisson 3.35.0, Redisson node 3.35.0

FAQs

Q: What is the cause of RedisTimeoutException?

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?