Redisson - Redis Java client with features of In-Memory Data Grid. Over 50 Redis based Java objects and services: Set, Multimap, SortedSet, Map, List, Queue, Deque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Tomcat, Scheduler, JCache API, Hibernate, MyBatis, RPC, local cache ...
Apache License 2.0
0
0
0

Redisson - Redis Java client
with features of an in-memory data grid

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.
JDK compatibility: 1.8 - 18, 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.17.4</version>
</dependency>  

Gradle

compile 'org.redisson:redisson:3.17.4'  

SBT

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

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 ...

Try Redisson PRO with ultra-fast performance and support by SLA.

Downloads

Redisson 3.17.4, Redisson node 3.17.4

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?

Contributors

mrniko
jackygurui
dependabot[bot]
johnou
mikawudi
eager
pierredavidbelanger
testower
arpit728
coryshrmn
derTobsch
anjia0532
ako-ts
scubasau
aaabramov
Vorotyntsev
andrejserafim
iamdobi
dcheckoway
shailender-bathula
jribble
mlkammer
pepelu0
lefay1982
wuqian0808
coding-tortoise
cchacin
edallagnol
randomVariable2
jsotuyod
antimony
basiszwo
mathieucarbou
deerRule
apemost
candrews
dvbobrov
fawitte
fgiannetti
ipalbeniz
JBodkin
marko-stankovic
micherr
sdjacobs
sdraper-CS
wtobi
tristanlins
d10n
dengliming
mdheeraj24
xrayw
jimichan
woodyDM
xJoeWoo
AayushyaVajpayee
alexwyler
asherwin-acadiasoft
alexguzun
AndreevDm
anton-johansson
bugra-bfg
Cesarla
danielgeller
dgershman
dnouls
0xdky
diogonicoleti
fransiskusx
f-sander
ghollies
milowg
erdem-aslan
JerryWzc
weiqiyiji
jwils
hrakaroo
lxk696
marlonwc3
mattcg
michaelcameron
oternovoi
pablote
roboflax
sammiq
serssp
serkan-ozal
xyqshi
sh1nj1
gitter-badger
thrau
xavierfacq
yann9
renzihui
ZizhengTai
anp13
blackstorm
broodjetom
gzeskas
buhe
huangsen94