##Redisson - distributed and scalable Java data structures on top of Redis server. Advanced Redis client
Use familiar Java data structures with power of Redis.
Based on patched version of lettuce Redis client and Netty 4 framework.
Redis 2.6+ and JDK 1.6+ compatible
Read wiki for more Redisson usage details
Licensed under the Apache License 2.0.
- Cluster servers mode:
- automatic master discovery
- automatic new master server discovery
- automatic slots change discovery
- Sentinel servers mode:
- automatic master and slave servers discovery
- automatic new master server discovery
- automatic new slave servers discovery
- automatic slave servers offline/online discovery
- read data using slave servers, write data using master server
- Master with Slave servers mode: read data using slave servers, write data using master server
- Single server mode: read and write data using single server
- Distributed implementation of
java.util.List
- Distributed implementation of
java.util.Set
- Distributed implementation of
java.util.SortedSet
- Distributed implementation of
java.util.Queue
- Distributed implementation of
java.util.concurrent.BlockingQueue
- Distributed implementation of
java.util.Deque
- Distributed implementation of
java.util.Map
- Distributed implementation of
java.util.concurrent.ConcurrentMap
- Distributed implementation of reentrant
java.util.concurrent.locks.Lock
with TTL support - Distributed alternative to the
java.util.concurrent.atomic.AtomicLong
- Distributed alternative to the
java.util.concurrent.CountDownLatch
- Distributed publish/subscribe messaging via
org.redisson.core.RTopic
- Distributed HyperLogLog via
org.redisson.core.RHyperLogLog
- Thread-safe implementation
- Supports OSGi
- With over 110 unit tests
Setronica: setronica.com
Monits: monits.com
Brookhaven National Laboratory: bnl.gov
Netflix Dyno client: [dyno] (https://github.com/Netflix/dyno)
####Please Note: trunk is current development branch.
####02-Apr-2015 - version 1.2.1 released
Feature - all redis-script commands via 'RScript' object
Feature - implementation of java.util.concurrent.BlockingQueue
(thanks to pdeschen)
Feature - buckets load by pattern (thanks to mathieucarbou)
Improvement - IPv6 support
Improvement - isEmpty
checks for added collections
Fixed - KryoCodec keys decoding (thanks to mathieucarbou)
Fixed - RMap.addAndGet()
data format
Fixed - timeout support in cluster, sentinel and single connections configurations
Fixed - ClassCastException in RedissonCountDownLatch.trySetCount
Fixed - RMap.replace
concurrency issue (thanks to AndrewKolpakov)
Fixed - RLock
subscription timeout units fixed (thanks to AndrewKolpakov)
Fixed - Re-throw async exceptions (thanks to AndrewKolpakov)
####09-Jan-2015 - version 1.2.0 released
Feature - cluster mode support
Fixed - RList
iterator race conditions
Fixed - RDeque.addFirst
RDeque.addLast
methods
Fixed - OSGi support
####16-Dec-2014 - version 1.1.7 released
Improvement - RAtomicLong
optimization
Fixed - RMap.fastRemove
and RMap.getAll
methods
Fixed - RTopic
listeners re-subscribing in sentinel mode
Fixed - RSet.toArray
and RSet.iterator
values order
Fixed - keys iteration in RMap.getAll
Fixed - RSet
iteration
Fixed - RAtomicLong
NPE
Fixed - infinity loop during master/slave connection acquiring
Fixed - RedissonList.addAll
result
####18-Nov-2014 - version 1.1.6 released
Feature - RBucket.exists
and RBucket.existsAsync
methods added
Feature - RMap.addAndGet
method added
Feature - database index via database
and operation timeout via timeout
config params added
Improvement - RLock
optimization
Breaking api change - Redisson now uses RedissonClient
interface
Fixed - NPE in CommandOutput
Fixed - unsubscribing during RTopic.removeListener
Fixed - all object names encoding, no more quotes
Fixed - HashedWheelTimer shutdown
Fixed - RLock
race conditions (thanks to jsotuyod and AndrewKolpakov)
Fixed - RCountDownLatch
race conditions
####23-Jul-2014 - version 1.1.5 released
Feature - operations auto-retry. retryAttempts
and retryInterval
params added for each connection type
Feature - RMap.filterEntries
, RMap.getAll
, RMap.filterKeys
, RMap.filterValues
methods added
Feature - RMap.fastRemove
, RMap.fastRemoveAsync
, RMap.fastPut
& RMap.fastPutAsync
methods added
Fixed - async operations timeout handling
Fixed - sorting algorithm used in RSortedSet
.
####15-Jul-2014 - version 1.1.4 released
Feature - new RLock.lockInterruptibly
, RLock.tryLock
, RLock.lock
methods with TTL support
Fixed - pub/sub connections reattach then slave/master down
Fixed - turn off connection watchdog then slave/master down
Fixed - sentinel master switch
Fixed - slave down connection closing
####13-Jul-2014 - version 1.1.3 released
Improvement - RedissonCountDownLatch optimization
Improvement - RedissonLock optimization
Fixed - RedissonLock thread-safety
Fixed - master/slave auth using Sentinel servers
Fixed - slave down handling using Sentinel servers
####03-Jul-2014 - version 1.1.2 released
Improvement - RedissonSet.iterator implemented with sscan
Improvement - RedissonSortedSet.iterator optimization
Feature - RSortedSet.removeAsync
, RSortedSet.addAsync
, RSet.removeAsync
, RSet.addAsync methods added
Feature - slave up/down detection in Sentinel servers connection mode
Feature - new-slave automatic discovery in Sentinel servers connection mode
####17-June-2014 - version 1.1.1 released
Feature - sentinel servers support
Fixed - connection leak in RTopic
Fixed - setted password not used in single server connection
####07-June-2014 - version 1.1.0 released
Feature - master/slave connection management
Feature - simple set/get object support via org.redisson.core.RBucket
Feature - hyperloglog support via org.redisson.core.RHyperLogLog
Feature - new methods getAsync
, putAsync
and removeAsync
added to org.redisson.core.RMap
Feature - new method publishAsync
added to org.redisson.core.RTopic
Feature - Kryo codec added (thanks to mathieucarbou)
Breaking api change - org.redisson.Config
model changed
Fixed - score calucaltion algorithm used in RSortedSet
.
Fixed - RMap.put
& RMap.remove
result consistency fixed.
Fixed - RTopic.publish
now returns the number of clients that received the message
Fixed - reconnection handling (thanks to renzihui)
Improvement - org.redisson.core.RTopic
now use lazy apporach for subscribe/unsubscribe
####04-May-2014 - version 1.0.4 released
Feature - distributed implementation of java.util.Deque
Feature - some objects implements org.redisson.core.RExpirable
Fixed - JsonJacksonCodec lazy init
####26-Mar-2014 - version 1.0.3 released
Fixed - RedissonAtomicLong state format
Fixed - Long serialization in JsonJacksonCodec
####05-Feb-2014 - version 1.0.2 released
Feature - distributed implementation of java.util.SortedSet
Fixed - OSGi compability
####17-Jan-2014 - version 1.0.1 released
Improvement - forceUnlock, isLocked, isHeldByCurrentThread and getHoldCount methods added to RLock
Feature - connection load balancer to use multiple Redis servers
Feature - published in maven central repo
####11-Jan-2014 - version 1.0.0 released First stable release.
Include the following to your dependency list:
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>1.2.0</version>
</dependency>