diff --git a/README.md b/README.md index aa9040e95..e49ad32aa 100644 --- a/README.md +++ b/README.md @@ -57,8 +57,10 @@ Features * Distributed publish/subscribe messaging via `org.redisson.core.RTopic` * Distributed HyperLogLog via `org.redisson.core.RHyperLogLog` * Asynchronous interface for each object +* Asynchronous connection pool * Thread-safe implementation * All commands executes in an atomic way +* [Spring cache](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html) integration * Supports [Reactive Streams](http://www.reactive-streams.org) * Supports [Redis pipelining](http://redis.io/topics/pipelining) (command batches) * Supports Android platform @@ -66,7 +68,7 @@ Features * Supports failed to send command auto-retry * Supports OSGi * Supports many popular codecs ([Jackson JSON](https://github.com/FasterXML/jackson), [CBOR](http://cbor.io/), [MsgPack](http://msgpack.org/), [Kryo](https://github.com/EsotericSoftware/kryo), [FST](https://github.com/RuedigerMoeller/fast-serialization), [LZ4](https://github.com/jpountz/lz4-java), [Snappy](https://github.com/xerial/snappy-java) and JDK Serialization) -* With over 250 unit tests +* With over 500 unit tests Projects using Redisson ================================ @@ -80,24 +82,25 @@ Invaluable: [invaluable.com](http://www.invaluable.com/) Latest version changelog ================================= -####09-Jan-2015 - version 2.2.5 released - -Feature - __new object added__ `RBloomFilter` -Feature - __new object added__ `RAtomicDouble` -Feature - `tryAdd`, `tryAddAsync`, `addAll` and `addAllAsync` methods added to `RScoredSortedSet` -Feature - `RKeys.count` and `RKeys.countAsync` methods added -Feature - `RedissonClient.saveBuckets` method added -Feature - `trySet`, `trySetAsync`, `compareAndSet` and `getAndSet` methods added to `RBucket` -Feature - `fastPutIfAbsent` and `fastPutIfAbsentAsync` methods added to `RMap` -Improvement - `RMap.putIfAbsent` optimization -Improvement - `RBitSet` index range extended to Integer.MAX_VALUE*2 -Improvement - `RAtomicLong.getAndAdd` optimization -Fixed - infinity loop during `RMap` iteration -Fixed - wrong timeout value used during `RBatch` execution -Fixed - connection handling when `isReadFromSlaves = false` -Fixed - `RMap.addAndGetAsync` key encoding -Fixed - `RBatch` errors handling -Fixed - `RBlockingQueue.pollLastAndOfferFirstToAsync` does not block properly +####28-Jan-2016 - version 2.2.6 released + +Feature - __new object added__ `RedissonMultiLock` +Feature - `move` method added to `RSet`, `RSetReactive` objects (thanks to thrau) +Feature - `put` methods with `maxIdleTime` param added to `RMapCache` object +Feature - `RList.subList` returns `live` view object +Feature - `readAll` method added to `RList` and `RSet` objects +Feature - `trim` method added to `RList` object +Feature - ability to read/write Redisson config object from/to `JSON` or `YAML` format +Feature - [Spring cache](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/cache.html) integration +Feature - `readMode` setting added +Improvement - `RSetCache` object entry eviction optimization +Improvement - `RList` object optimization +Improvement - `RedissonCountDownLatchAsync` interface added +Improvement - cluster restrictions removed from `loadBucketValues` and `saveBuckets` methods +Fixed - wrong ByteBuf read position in all codecs based on `StringCodec` +Fixed - can't connect with password to Sentinel and Elasticache servers +Fixed - Cluster slave discovery (regression since 2.1.5) +Fixed - Sentinel slave discovery (regression since 2.1.5) ### Maven @@ -106,12 +109,12 @@ Include the following to your dependency list: org.redisson redisson - 2.2.5 + 2.2.6 ### Gradle - compile 'org.redisson:redisson:2.2.5' + compile 'org.redisson:redisson:2.2.6' ### Supported by