From 5df4b02639070ededbd1593f138139a6a30fce41 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 29 May 2019 10:48:59 +0300 Subject: [PATCH 1/9] Update CHANGELOG.md --- CHANGELOG.md | 93 +++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 88 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b231b6f54..fc4cb3ad2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,12 +4,30 @@ Redisson Releases History Сonsider __[Redisson PRO](https://redisson.pro)__ version for advanced features and support by SLA. -### 29-Apr-2019 - versions 3.10.7 released +### 28-May-2019 - 3.11.0 released +Feature - `radiusStoreSortedTo` methods added to `RGeo`, `RGeoAsync`, `RGeoRx`, `RGeoReactive` interfaces +Feature - `Async`, `Reactive`, `RxJava2` interfaces added to `JCache`. Read the [documentation](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks#1441-jcache-api-asynchronous-reactive-and-rxjava2-interfaces) for more details +Feature - `RRingBuffer` object added. Read the [documentation](https://github.com/redisson/redisson/wiki/7.-distributed-collections/#721-ring-buffer) for more details + +Improvement - reduced memory consumption by ClusterConnectionManager + +Fixed - `HttpSessionListener.sessionDestoyed` method isn't invoked if session wasn't loaded by Tomcat instance +Fixed - redisson-spring-data `ReactiveSubscription.receive` method throws NPE +Fixed - Redis response isn't fully consumed after decoding error +Fixed - Spring Session PRINCIPAL_NAME_INDEX_NAME session attribute has incorrect name +Fixed - internal `AsyncSemaphore` object doesn't notify sleeping threads with permits more than one +Fixed - `RedisTemplate.radius` and `RedisConnection.geoRadius` methods throws `IllegalArgumentException` during response decoding +Fixed - `RedissonNodeConfig.mapReduceWorkers` setting couldn't be set (thanks to xiaoxuan.bai) +Improvement - UpdateValve needs to execute manager.store only once at the end of the request (thanks to [jchobantonov](https://github.com/jchobantonov)) + +### 29-Apr-2019 - 3.10.7 released Feature - Add support for [Reactive and RxJava2 interfaces](https://github.com/redisson/redisson/wiki/9.-distributed-services#913-remote-service-asynchronous-reactive-and-rxjava2-calls) to RemoteService object Feature - MILLISECONDS option added to RRateLimiter.RateIntervalUnit object Feature - range method added to RList, RListReactive and RListRx interfaces + Improvement - `JCache.getAll` execution optimization for non-existing keys Improvement - 10X Performance boost for `JCache.putAll` method + Fixed - disconnected sentinels shouldn't be used in sentinel list Fixed - Apache Tomcat `RedissonSessionManager` doesn't use classloader aware codec for session Map object (thanks to [jchobantonov](https://github.com/jchobantonov)) Fixed - LiveObject field with Map type couldn't be persisted @@ -23,15 +41,17 @@ Fixed - Redis Sentinel prior 5.0.1 version doesn't require password. Regression Fixed - Redisson tries to renewed Lock expiration even if lock doesn't exist. Regression since 3.10.5 version Fixed - FstCodec can't deserialize ConcurrentHashMap based object with package visibility -### 05-Apr-2019 - versions 3.10.6 released +### 05-Apr-2019 - 3.10.6 released Feature - `broadcastSessionEvents` setting added to Tomcat Session Manager Feature - `remainTimeToLive` method added to `RLock`, `RLockAsync`, `RLockRx` and `RLockReactive` interfaces Feature - NAT mapping support for cluster mode Feature - `isLock` method added to `RLockAsync`, `RLockRx`, `RLockReactive` interfaces Feature - `writeBehindDelay` and `writeBehindBatchSize` settings added to `MapOptions` object + Improvement - Eviction task logging added Improvement - `MapWriter` interface retains only two methods for handling batch updates Improvement - `MapOptions.writeBehindThreads` parameter removed + Fixed - `RBitSet.asBitSet` methods throws NPE if RBitSet object doesn't exist Fixed - `JCache.getAll` method throws `RedisException: too many results to unpack` Fixed - `RLock.lock` method can be interrupted with `Thread.interrupt` method @@ -43,14 +63,16 @@ Fixed - `CommandPubSubDecoder.decodeResult` throws `IllegalStateException` in JB Fixed - NullValue object shouldn't be stored if `RedissonSpringCacheManager.allowNullValues = false` Fixed - `removeListener` method of `RTopicReactive` and `RTopicRx` interfaces throws NoSuchMethodException -### 20-Mar-2019 - versions 3.10.5 released +### 20-Mar-2019 - 3.10.5 released Feature - `getMultiLock`, `getRedLock` methods added to `RedissonClient`, `RedissonRxClient` and `RedissonReactiveClient` interfaces Feature - `getInfo`, `listGroups`, `listConsumers` methods added to `RStream`, `RStreamRx`, `RStreamReactive` interfaces Feature - `RPatternTopic.removeListenerAsync` method added Feature - `getAndSet` method with TTL support added `RBucket`, `RBucketAsync`, `RBucketReactive`, `RBucketRx` interfaces Feature - `addListener` and `removeListener` methods added to `RObject`, `RObjectAsync`, `RObjectReactive`, `RObjectRx` objects. It allows to add and remove listeners for Deleted and Expired keyspace events published by Redis + Improvement - shuffle list of sentinels to distribute load (thanks to [hrakaroo](https://github.com/hrakaroo)) Improvement - methods of RxJava2 interfaces should use full set of result objects: `Single`, `Maybe` or `Completable` + Fixed - compatibility with hibernate 5.2.0 - 5.2.4 versions Fixed - ClassCastException during `RBatchReactive` and `RBatchRx` execution in `exectionMode` = `REDIS_WRITE_ATOMIC` or `REDIS_READ_ATOMIC` Fixed - sentinel mode doesn't support AUTH command @@ -60,9 +82,10 @@ Fixed - RStream.readGroup method doesn't handle empty result properly with Redis Fixed - AUTH password included in exceptions Fixed - locked lock isn't unlocked after disconnect to Redis -### 08-Mar-2019 - versions 3.10.4 released +### 08-Mar-2019 - version 3.10.4 released Feature - `getCountDownLatch`, `getPermitExpirableSemaphore`, `getSemaphore`, `getFairLock` methods added to `RMultimap` object Feature - `maxCleanUpDelay` and `minCleanUpDelay` settings added to `Config` object + Fixed - `RLocalCachedMap.destroy` method doesn't clear local cache Fixed - HP NONSTOP OS is not supported by MapCacheEventCodec Fixed - `RedissonLocalCachedMap.readAll*` methods throw NPE if `evictionPolicy = WEAK` used @@ -73,14 +96,16 @@ Fixed - negative delay shouldn't be allowed to define for `RDelayedQueue.offer` Fixed - eviction delay for `RMapCache` object is not decreased Fixed - `RMultiLock.tryLockAsync` and `RMultiLock.lockAsync` methods may hang during invcation -### 26-Feb-2019 - versions 3.10.3 released +### 26-Feb-2019 - 3.10.3 released Feature - `RTransaction.getBuckets` method added Feature - ability to redefine `CacheKeysFactory` in Hibernate Cache Factory Feautre - ability to specify default values for environment variable (thanks to [aaabramov](https://github.com/aaabramov)) Feature - `RRateLimiter.getConfig` method added Feature - `ping` and `pingAll` methods with timeout added to `Node` object + Improvement - create Redis stream group if it doesn't exist Improvement - response decoding optimization + Fixed - `RStream.listPending` throws `IndexOutOfBoundsException` Fixed - `LocalCacheView.toCacheKey` method throws `StackOverflowError` Fixed - `RedissonSessionManager` doesn't support async servlets (thanks to [dnouls](https://github.com/dnouls)) @@ -93,8 +118,10 @@ Fixed - Transactional RBucket object doesn't respect transaction timeout Feature - `StreamMessageId.NEVER_DELIVERED` added Feature - [decodeInExecutor](https://github.com/redisson/redisson/wiki/2.-Configuration#decodeinexecutor) setting added Feature - `lockAsync` and `tryLockAsync` methods with threadId param added to RedissonMultiLock object + Improvement - default values of `nettyThreads` and `threads` settings set to `32` and `16` respectively Improvement - Redis nodes with empty names in cluster config should be skipped + Fixed - `RFuture.cause()` method should return CancellationException and not throw it Fixed - continues handling of RedisLoadingException leads to excessive load Fixed - slave's connection pools are not initialized when it back from failover @@ -118,10 +145,12 @@ Feature - `cachedKeySet`, `cachedValues`, `cachedEntrySet` and `getCachedMap` me Feature - __Hibernate 5.4__ support Feature - [search LiveObjects](https://github.com/redisson/redisson/wiki/9.-Distributed-services#rindex) by field Feature - allow checking if lock is held by a thread (thanks to [hackworks](https://github.com/hackworks)) + Improvement - return `null` if Tomcat session attribute couldn't be parsed Improvement - Tomcat Session key codec changed to StringCodec Improvement - Spring Session key codec changed to StringCodec Improvement - Tomcat Session recycle method implementation (thanks to [jchobantonov](https://github.com/jchobantonov)) + Fixed - RRateLimiter RateType checking (thanks to [shengjie8329](https://github.com/shengjie8329)) Fixed - implementation of workaround for DNS name resolver bug Fixed - running scheduleWithFixedDelay Job couldn't be canceled @@ -157,10 +186,12 @@ Feature - Spring Data Redis 2.1.x support added Feature - Spring Boot Starter 2.1.x support added Feature - Spring Data Redis 2.0.x and 2.1.x integrations support `ReactiveRedisTemplate` Feature - Support of [Different monitoring systems](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks#1410-statistics-monitoring-jmx-and-other-systems) + Improvement - RGeo.radius methods use GEORADIUS_RO and GEORADIUSBYMEMBER_RO commands Improvement - restored implementation of DnsAddressResolverGroupFactory Improvement - RedisConnectionClosedException removed Improvement - __default codec changed to FSTCodec__ + Fixed - `RMap.getAll` throws `ClassCastException` during transaction execution Fixed - `pingConnectionInterval` and `lock-watchdog-timeout` parameters added to `redisson.xsd` Fixed - zRevRangeWithScores does not work properly in Spring RedisTemplate @@ -193,8 +224,10 @@ Feature - `takeFirstElements` and `takeLastElements` added to `RScoredSortedSetR Feature - `takeFirst` and `takeLast` methods added to `RScoredSortedSet` object Feature - `readGroup` method variations added to `RStream` object Feature - `remove`, `trim`, `fastClaim`, `removeGroup`, `removeConsumer`, `updateGroupMessageId` methods added to `RStream` object + Improvement - JCache performance optimization up to 2x times Improvement - Redis url validation + Fixed - Exception serialization by Jackson codec Fixed - DNS channels aren't pooled Fixed - RStream commands don't work with Redis 5.0.1 version @@ -218,7 +251,9 @@ Feature - multi-type listeners support for `RTopic` and `RPatternTopic` objects. Feature - `useScriptCache` setting added. Manages by Lua-script caching on Redis side. Please refer to [documentation](https://github.com/redisson/redisson/wiki/2.-Configuration#usescriptcache) for more details Feature - added `RMap.putAllAsync` method with batch size Feature - added `RSet.random` method limited by count + Improvement - memory allocation optimization during ExecutorService task execution + Fixed - `keepAlive` is not being set Fixed - Redisson can't resolve short DNS name Fixed - Redisson shuts down executor it doesn't own @@ -232,7 +267,9 @@ Fixed - `UnsupportedOperationException` thrown when using Spring Actuator with r ### 06-Oct-2018 - versions 2.13.2 and 3.8.2 released Feature - `RPermitExpirableSemaphore.updateLeaseTime` method added + Improvements - cluster state check + Fixed - DNS resolver fails to find valid DNS record Fixed - MultiLock should attempt to release locks if request was sent successfully Fixed - `RRateLimiter.tryAcquire` with timeout blocks forever @@ -246,6 +283,7 @@ Fixed - tomcat session replication in IN_MEMORY mode (thanks to Yasin Koyuncu) ### 18-Sep-2018 - versions 2.13.1 and 3.8.1 released Feature - __RStream__ object added. Please refer to [documentation](https://github.com/redisson/redisson/wiki/7.-Distributed-collections#720-stream) for more details + Fixed - `failedSlaveCheckInterval` setting is not applied under some conditions Fixed - `spring.factories` and `spring.provides` files added to Spring Boot module Fixed - `pingConnectionInterval` setting affects re-connection process with password enabled setting @@ -260,8 +298,10 @@ Feature - __Spring Data Redis__ integration. Please refer to [documentation](htt Feature - __Spring Boot Starter__ implementation. Please refer to [documentation](https://github.com/redisson/redisson/tree/master/redisson-spring-boot-starter#spring-boot-starter) for more details Feature - `RBlockingDequeReactive` object added Feature - `sharedSession` setting for Tomcat Session Manager. Appropriate solution for migration of EAR based application with multiple WARs hosted previously on WebLogic or other servers. Please refer to [documentation](https://github.com/redisson/redisson/tree/master/redisson-tomcat) for more details + Improvement - Redis request/response handling performance improvement Improvement - CompositeIterator decoupled from CompositeIterable (thanks to [Pepe-Lu](https://github.com/Pepe-Lu)) + Fixed - task scheduled with time more than 1 hour is not executed Fixed - RScheduledExecutorService doesn't handle delayed tasks correctly Fixed - `RMapCache` and `RSetCache` objects should implement `RDestroyable` @@ -279,13 +319,16 @@ Feature - `RScoredSortedSetReactive`, `RSetReactive`, `RListReactive` objects im Feature - `RGeoReactive` object added Feature - reactive version of FairLock added Feature - `RRateLimiterReactive` object added + Improvement - RObjectReactive and RScoredSortedSetReactive interfaces synced with `RObjectAsync` and `RScoredSortedSetAsync` + Fixed - readonly command shouldn't be executed on master node used as slave Fixed - connection is closed per command execution for master node used as slave in `readMode=MASTER_SLAVE` Fixed - `RLiveObjectService` should use entityClass's classloader ### 16-Jul-2018 - versions 2.12.4 and 3.7.4 released Feature - dump and restore methods added to `RObject` interface + Fixed - Redis response hangs if `RLiveObject` stored as nested object Fixed - slow Redisson initialization in Sentinel Fixed - missing PubSub messages when pingConnectionInterval setting is specified @@ -298,6 +341,7 @@ Fixed - `RHyperLogLog.addAll` method doesn't add all elements ### 27-Jun-2018 - versions 2.12.3 and 3.7.3 released Feature - added `RKeys.getKeys` method with batch size Feature - added `SnappyCodecV2` codec + Fixed - `SerializationCodec` doesn't support proxied classes Fixed - NPE if `RScheduledExecutorService`'s task scheduled with cron expression for finite number of execution Fixed - validation of cron expression parameter of `RScheduledExecutorService.schedule` method @@ -309,6 +353,7 @@ Fixed - `RRateLimiter.acquire` method throws NPE ### 14-Jun-2018 - versions 2.12.2 and 3.7.2 released Feature - `RBatchOptions.executionMode` setting added. Please refer to [documentation](https://github.com/redisson/redisson/wiki/10.-additional-features#103-execution-batches-of-commands) for more details + Fixed - NPE in JCacheManager.close method Fixed - ExecutorService tasks aren't reloaded properly Fixed - removed unnecessary creation of HashMap instances in cluster mode @@ -327,8 +372,10 @@ Feature - ExecutorService task failover. Default failover interval is 60 seconds Feature - `RScoredSortedSet.pollFirst` and `pollLast` methods with count parameter added Feature - `RScoredSortedSet.pollFirst` and `pollLast` methods with timeout added Feature - `RScoredSortedSet.pollFirstFromAny` and `pollLastFromAny` methods added + Improvement - `Node.time()` method returns `Time` object Improvement - RListReactive, RMapCacheReactive, RSetCacheReactive and RSetReactive are up-to-date to Async interfaces + Fixed - setPingConnectionInterval is not propagated for single server configuration Fixed - ClusterConnectionManager should use shared resolverGroup Fixed - value can't be added to BloomFilter @@ -347,8 +394,10 @@ Feature - __XA Transaction API implementation__ Please refer to [documentation] Feature - `RPermitExpirableSemaphoreReactive` object added Feature - `RMap.fastReplace` method added Feature - PING support for Pub/Sub connections + Improvement - `RBatch` object settings extracted as BatchOptions object Improvement - `RBitSet.set` method should return boolean + Fixed - New IP discovery through DNS doesn't work for cluster mode Fixed - replication for Tomcat Session Manager with `readMode=INMEMORY` Fixed - `pingConnectionInterval` is not applied @@ -367,6 +416,7 @@ Fixed - `RedisTimeoutException` arise during blocking command execution on RBloc Feature - `RKeys.copy` method added Feature - `RObject.copy` method added Feature - `RSetCache.getLock` method added + Fixed - `ClusterConnectionManager` throws `IllegalArgumentException` Fixed - `CommandDecoder` doesn't remove command from commands queue when response was decoded with error Fixed - `RSetMultimap.get()` doesn't create multimap entry in case of absence @@ -377,6 +427,7 @@ Fixed - hdel comand wasn't used during remote service task removal ### 27-Mar-2018 - versions 2.11.4 and 3.6.4 released Feature - `RSet.getLock` method added + Fixed - race condition with load balancer node selection Fixed - `READONLY can't write against a read only slave` error during failover Fixed - NPE during failover in Sentinel mode @@ -388,6 +439,7 @@ Fixed - `ClassCastException` in `RListMultimapCache.removeAll` method ### 14-Mar-2018 - versions 2.11.3 and 3.6.3 released Feature - DNS monitoring for Sentinel nodes + Fixed - Old/stale nodes not removed from NodesGroup Fixed - CertificateException while connecting over SSL to Azure or AWS Elasticache config endpoint Fixed - publish subscribe connections couldn't be resubscribed during failover @@ -410,8 +462,10 @@ Feature - new values added to `performanceMode` setting Feature - `lockAsync` and `unlockAsync` methods added to `RedissonMultiLock` Feature - `RMapCache.remainTimeToLive` method added Feature - `Config.addressResolverGroupFactory` setting added (thanks @Hai Saadon) + Improvement - `UpdateMode.AFTER_REQUEST` update mode optimization in tomcat session manager Improvement - removed ByteBuf object usage during collection iteration + Fixed - `Unable to send command` error under heavy load using Redisson PRO Fixed - `expire`, `expireAt` and `clearExpire` commands aren't implemented properly for `RBloomFilter`, `RDelayedQueue`, `RFairLock`, `RLocalCachedMap` and `RPermitExpirableSemaphore` object Fixed - Redis clients duplication during discovering ip change of hostname @@ -425,6 +479,7 @@ Feature - `rangeTailReversed`, `rangeHeadReversed` and `rangeReversed` methods a Feature - `RBucketsAsync` interface added Feature - `scanInterval` setting added for Sentinel mode Feature - `RLocalCachedMap.clearLocalCache` method added + Fixed - remove `hset` command invocation during `RMapCache` entry loading Fixed - buffer leak in `replace` and `remove` methods of `RLocalCachedMap` object Fixed - `RRemoteService` object throws NPE @@ -451,8 +506,10 @@ Feature - __`DoubleAdder` object added__ Please read [documentation](https://git Feature - `RBucket.getAndDelete`, `RAtomicLong.getAndDelete` and `RAtomicDouble.getAndDelete` methods added Feature - __`RAtomicDoubleReactive` object added__ Feature - `RPriorityQueue.pollLastAndOfferFirstTo` method added + Improvement - support single config endpoint node for cluster mode Improvement - hash functions replaced with https://github.com/google/highwayhash + Fixed - JDK 1.6+ compatibility for RemoteService Fixed - `setDnsMonitoringInterval(-1)` doesn't disable DNS monitoring Fixed - `RLocalCachedMap.putAll` gets stuck if map passed as parameter contains > 10000 elements @@ -467,6 +524,7 @@ Fixed - JsonJacksonCoded shouldn't override provided objectMapper settings (than ### 25-Dec-2017 - versions 2.10.7 and 3.5.7 released Feature - __`RClusteredBitSet` object added__ Please read [documentation](https://github.com/redisson/redisson/wiki/6.-Distributed-objects/#641-bitset-data-partitioning) for more details + Improvement - Memory consumption optimization. `RExecutorFuture` and `RScheduledFuture` shouldn't be tracked if they weren't stored Improvement - Config settings `codecProvider` and `redissonReferenceEnabled` renamed to `referenceCodecProvider` and `referenceEnabled` Fixed - `RedissonRedLock` couldn't be locked in some cases @@ -480,7 +538,9 @@ Feature - `RSetMultimapReactive` object added Feature - `RListMultimapReactive` object added Feature - `ReconnectionStrategy` and `SyncStrategy` added to `LocalCachedMapOptions` Feature - `pingConnectionInterval` setting added + Improvement - added sync on key for `JCache.invoke` method + Fixed - arguments encoding for `RScript` Fixed - `MapLoader` hangs if loaded value is null Fixed - OutOfMemory during `RExecutorService` usage @@ -501,9 +561,11 @@ Fixed - handling connection to Redis nodes returned to online state Feature - Added pingConnection, keepAlive, tcpNoDelay settings Feature - Slaves synchronization support for `RBatch`/`RBatchReactive` objects + Improvement - Data encoding should be executed on client thread only Improvement - Handling Redis redirect optimization Improvement - Better collection handling for RedissonReference (thanks to Rui Gu) + Fixed - `RedisLoadingException` handling during re-connection process Fixed - `RedisClient` can't be shutdown properly Fixed - timeout drift for `RFairLock` @@ -518,8 +580,10 @@ Fixed - `RMapCache.getAll` doesn't support large keySet ### 28-Sep-2017 - versions 2.10.4 and 3.5.4 released Feature - added `maxSize` setting for `SpringCacheManager` Feature - allow `LiveObjectService` to work with classes that inherit from REntities (thanks to @sdjacobs) + Improvement - `RMapCache` entires eviction process optimized Improvement - handling of slave down process + Fixed - operation on slave coldn't be executed after its restart (thanks to @xavierfacq) Fixed - `ArrayIndexOutOfBoundsException` in RedissonSessionRepository Fixed - storing Live Objects in Redisson's collection objects (thanks to Rui Gu) @@ -552,6 +616,7 @@ Fixed - connection could be in closed state during reconnection process for bloc Feature - DNS monitoring support for Sentinel, Master/Slave and Replicated mode Feature - `org.redisson.codec.CompositeCodec` added Feature - added `readMode` property for Tomcat RedissonSessionManager + Fixed - `RMapCache.putAll` couldn't handle map with entries amount larger than 5000 Fixed - master entry should be shutdown in slaveConnectionPool during master change process Fixed - Redisson's Tomcat Session attributes should be read first to avoid invalidated session exception @@ -566,6 +631,7 @@ Feature - __`RLockReactive` object added__ Feature - __`RReadWriteLockReactive` object added__ Feature - __`RSemaphoreReactive` object added__ Feature - `unlink`, `flushdbParallel`, `flushallParallel` methods added + Fixed - ContextClassLoader should be used by Redisson Codec for Tomcat session's object serialization Fixed - Spring Cache `NullValue` does not implement Serializable Fixed - `RLocalCachedMap` doesn't work with non-json and non-binary codecs @@ -584,8 +650,10 @@ Feature - `RExecutorService` should return RExecutorFuture object with taskId Feature - added `RList.get` method to load elements in a batch Feature - ability to submit few tasks atomically (in batch) through `RExecutorService` interface Feature - [Config.keepPubSubOrder](https://github.com/redisson/redisson/wiki/2.-Configuration#keeppubsuborder) setting added + Improvement - make `RMapReactive` and `RMapCacheReactive` interfaces match with `RMap` and `RMapCache` Improvement - `RLexSortedSet` should extend `RSortedSet` + Fixed - connection listener is not invoked in some cases Fixed - `RMapCache` `remove`, `put`, `putIfAbsent` and `replace` methods aren't respect entry expiration Fixed - `SCAN` command should be used in `RKeys.deleteByPattern` method @@ -614,8 +682,10 @@ Feature - `RedissonCacheManager.setAllowNullValues` method added Feature - `RedissonSpringCacheManager.setCacheNames` method added Feature - Map Entry listeners support added for `RMapCache` object Feature - `Config.lockWatchdogTimeout` parameter added + Improvement - NPE checking for key and value added for RedissonMapCache Improvement - `RKeys.deleteByPatternAsync` uses scan command + Fixed - `RBoundedBlockingQueue.pollAsync` blocks if timeout is less than 1 second Fixed - unlocking of nested `RReadWriteLock.readLock` deletes current acquired `RReadWriteLock.writeLock` Fixed - wrong null values checking in RDelayedQueue methods @@ -628,6 +698,7 @@ Fixed - JSR107 cache implementation should throw `javax.cache.CacheException` in Feature - __Dropwizard metrics integration__ More details [here](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks#147-dropwizard-metrics) Feature - `RLocalCachedMap.preloadCache` method added (thanks to Steve Draper) Feature - `RGeo.radiusStoreTo` methods added (thanks to Cory Sherman) + Fixed - NoClassDefFoundError exception during using `redisson-all` module ### 27-Apr-2017 - versions 2.9.1 and 3.4.1 released @@ -647,7 +718,9 @@ Feature - `RMapCache.fastPutIfAbsent` with ttl added (thanks to Dobi) Feature - `EvictionPolicy.WEAK` added for `RLocalCachedMap` Feature - `LocalCachedMapOptions.invalidationPolicy` introduced for `RLocalCachedMap` Feature - `expire`, `expireAt`, `move`, `migrate`, `clearExpire`, `renamenx`, `rename`, `remainTimeToLive` methods added to RKey + Improvement - `EvictionPolicy.LRU` optimization for `RLocalCachedMap` + Fixed - `RTopic.onSubscribe` should be invoked after failover process Fixed - Spring boot with redisson 3.3.2 fails without optional actuator dependency (thanks to Rick Perkowski) Fixed - `RedissonCacheMap.putIfAbsentAsync` doesn't take in account ttl and minIdleTime params (thanks to Dobi) @@ -668,6 +741,7 @@ Feature - autoconfigured Spring Boot CacheStatisticsProvider implementation (tha Feature - `RKeys.touch` and `RObject.touch` methods added Feature - `RedissonCompletionService` implementation added Feature - `RMap.getReadWriteLock` method added + Fixed - NPE during `RLocalCachedMap.fastRemove` invocation Fixed - `redisson-tomcat-8` module is not compatible with Tomcat 8.5 Fixed - URLBuilder methods should be synchronized @@ -681,7 +755,9 @@ Fixed - `Config.fromJson(file)` method, throws StackOverflowError Feature - Cache with SoftReference support added for `RLocalCachedMap` Feature - `Config.subscriptionMode` setting added + Improvement - errors handling during RBatch execution + Fixed - StackOverflowException in URLBuilder Fixed - TomcatSessionManager can't be used in Tomcat if Redisson has been deployed in web application Fixed - skip cluster nodes with the "handshake" flag (thanks to @dcheckoway) @@ -695,7 +771,9 @@ Feature - __`RPriorityQueue` object added__ More details [here](https://github.c Feature - __`RPriorityDeque` object added__ More details [here](https://github.com/redisson/redisson/wiki/7.-distributed-collections/#716-priority-deque) Feature - `removeAllListeners` and `removeListener` by instance methods added for `RTopic` and `RPatternTopic` Feature - `RLockAsync` interface added + Improvement - `RRemoteService` is now able to support method overload + Fixed - `RLocalCachedMap` is not Redis cluster compatible Fixed - cascade slaves are not supported in cluster mode Fixed - shutdown checking during master change state check added @@ -704,6 +782,7 @@ Fixed - master isn't checked during new slave discovery in Sentinel mode ### 02-Feb-2017 - versions 2.7.4 and 3.2.4 released Feature - Allow to specify Redisson instance/config during JCache cache creation + Fixed - `ByteBuf.release` method invocation is missed in `LZ4Codec` and `SnappyCodec` Fixed - AssertionError during Redisson shutdown Fixed - `RReadWriteLock.readLock` couldn't be acquired by same thread which has already acquired `writeLock` @@ -719,8 +798,10 @@ Redisson Team is pleased to announce __ULTRA-FAST__ Redisson PRO edition. Performance measure results available in [Benchmark whitepaper](https://redisson.pro/Redisson%20PRO%20benchmark%20whitepaper.pdf) Feature - `RMap.getLock(key)` and `RMultimap.getLock(key)` methods added + Improvement - `RedissonSpringCacheManager` constructor with Redisson instance only added Improvement - `CronSchedule` moved to `org.redisson.api` package + Fixed - RedissonBaseIterator.hasNext() doesn't return false in some cases Fixed - NoSuchFieldError exception in `redisson-tomcat` modules Fixed - ConnectionPool size not respected during redirect of cluster request @@ -733,6 +814,7 @@ Fixed - CommandDecoder should print all replay body on error Feature - `RList`, `RSet` and `RScoredSortedSet` implements `RSortable` interface with SORT command support Feature - `NodeAsync` interface Feature - `Node.info`, `Node.getNode` methods added + Fixed - elements distribution of `RBlockingFairQueue` across consumers Fixed - `factory already defined` error during Redisson initialization under Apache Tomcat @@ -743,6 +825,7 @@ Url format used in config files __has changed__. For example: "//127.0.0.1:6739" now should be written as "redis://127.0.0.1:6739" Feature - `RSet.removeRandom` allows to remove several members at once + Fixed - exceptions during shutdown Fixed - redis url couldn't contain underscore in host name Fixed - IndexOutOfBoundsException during response decoding From ec4c7bfdf987d6a489eb6b8d9122799196fde1a9 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 29 May 2019 10:49:18 +0300 Subject: [PATCH 2/9] Update CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index fc4cb3ad2..c8a3f4493 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ Feature - `Async`, `Reactive`, `RxJava2` interfaces added to `JCache`. Read the Feature - `RRingBuffer` object added. Read the [documentation](https://github.com/redisson/redisson/wiki/7.-distributed-collections/#721-ring-buffer) for more details Improvement - reduced memory consumption by ClusterConnectionManager +Improvement - UpdateValve needs to execute manager.store only once at the end of the request (thanks to [jchobantonov](https://github.com/jchobantonov)) Fixed - `HttpSessionListener.sessionDestoyed` method isn't invoked if session wasn't loaded by Tomcat instance Fixed - redisson-spring-data `ReactiveSubscription.receive` method throws NPE @@ -18,7 +19,7 @@ Fixed - Spring Session PRINCIPAL_NAME_INDEX_NAME session attribute has incorrect Fixed - internal `AsyncSemaphore` object doesn't notify sleeping threads with permits more than one Fixed - `RedisTemplate.radius` and `RedisConnection.geoRadius` methods throws `IllegalArgumentException` during response decoding Fixed - `RedissonNodeConfig.mapReduceWorkers` setting couldn't be set (thanks to xiaoxuan.bai) -Improvement - UpdateValve needs to execute manager.store only once at the end of the request (thanks to [jchobantonov](https://github.com/jchobantonov)) + ### 29-Apr-2019 - 3.10.7 released Feature - Add support for [Reactive and RxJava2 interfaces](https://github.com/redisson/redisson/wiki/9.-distributed-services#913-remote-service-asynchronous-reactive-and-rxjava2-calls) to RemoteService object From d470e4ffe2168a88f24de856121442b1c262ee7f Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 29 May 2019 10:51:36 +0300 Subject: [PATCH 3/9] Update CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8a3f4493..b4bf8f9e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ Redisson Releases History ### 28-May-2019 - 3.11.0 released Feature - `radiusStoreSortedTo` methods added to `RGeo`, `RGeoAsync`, `RGeoRx`, `RGeoReactive` interfaces +Feature - Local cache for `JCache` added. Read the [documentation](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks#1442-jcache-api-local-cache) for more details Feature - `Async`, `Reactive`, `RxJava2` interfaces added to `JCache`. Read the [documentation](https://github.com/redisson/redisson/wiki/14.-Integration-with-frameworks#1441-jcache-api-asynchronous-reactive-and-rxjava2-interfaces) for more details Feature - `RRingBuffer` object added. Read the [documentation](https://github.com/redisson/redisson/wiki/7.-distributed-collections/#721-ring-buffer) for more details From 71f245bae2dcc7c6ae97d165cbdb354316ff53ac Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 29 May 2019 10:54:07 +0300 Subject: [PATCH 4/9] Update README.md --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 7c2cda6c7..94710061a 100644 --- a/README.md +++ b/README.md @@ -51,7 +51,7 @@ JDK compatibility: 1.8 - 12, Android * Supports OSGi * Supports SSL * Supports many popular codecs ([Jackson JSON](https://github.com/FasterXML/jackson), [Avro](http://avro.apache.org/), [Smile](http://wiki.fasterxml.com/SmileFormatSpec), [CBOR](http://cbor.io/), [MsgPack](http://msgpack.org/), [Kryo](https://github.com/EsotericSoftware/kryo), [Amazon Ion](https://amzn.github.io/ion-docs/), [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 1800 unit tests +* With over 2000 unit tests redisson-hibernate-53 - 3.10.7 + 3.11.0 ``` @@ -46,13 +46,13 @@ Gradle ```groovy // for Hibernate v4.x - compile 'org.redisson:redisson-hibernate-4:3.10.7' + compile 'org.redisson:redisson-hibernate-4:3.11.0' // for Hibernate v5.0.x - v5.1.x - compile 'org.redisson:redisson-hibernate-5:3.10.7' + compile 'org.redisson:redisson-hibernate-5:3.11.0' // for Hibernate v5.2.x - compile 'org.redisson:redisson-hibernate-52:3.10.7' + compile 'org.redisson:redisson-hibernate-52:3.11.0' // for Hibernate v5.3.3+ - v5.4.x - compile 'org.redisson:redisson-hibernate-53:3.10.7' + compile 'org.redisson:redisson-hibernate-53:3.11.0' ``` ### 2. Specify hibernate cache settings From bf2f1948759833b3d32c82730d76553489afdb00 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 29 May 2019 10:56:24 +0300 Subject: [PATCH 6/9] Update README.md --- redisson-spring-boot-starter/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/redisson-spring-boot-starter/README.md b/redisson-spring-boot-starter/README.md index b0164aa9a..baa908883 100644 --- a/redisson-spring-boot-starter/README.md +++ b/redisson-spring-boot-starter/README.md @@ -16,14 +16,14 @@ Maven org.redisson redisson-spring-boot-starter - 3.10.7 + 3.11.0 ``` Gradle ```groovy - compile 'org.redisson:redisson-spring-boot-starter:3.10.7' + compile 'org.redisson:redisson-spring-boot-starter:3.11.0' ``` ### 2. Add settings into `application.settings` file From 14360a866e2a1d783d3f56f6f8340243fb4cd525 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 29 May 2019 10:57:21 +0300 Subject: [PATCH 7/9] Update README.md --- redisson-spring-data/README.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/redisson-spring-data/README.md b/redisson-spring-data/README.md index 5c4349e88..8b95bf70a 100644 --- a/redisson-spring-data/README.md +++ b/redisson-spring-data/README.md @@ -25,7 +25,7 @@ Maven redisson-spring-data-20 redisson-spring-data-21 - 3.10.7 + 3.11.0 ``` @@ -33,15 +33,15 @@ Gradle ```groovy // for Spring Data Redis v.1.6.x - compile 'org.redisson:redisson-spring-data-16:3.10.7' + compile 'org.redisson:redisson-spring-data-16:3.11.0' // for Spring Data Redis v.1.7.x - compile 'org.redisson:redisson-spring-data-17:3.10.7' + compile 'org.redisson:redisson-spring-data-17:3.11.0' // for Spring Data Redis v.1.8.x - compile 'org.redisson:redisson-spring-data-18:3.10.7' + compile 'org.redisson:redisson-spring-data-18:3.11.0' // for Spring Data Redis v.2.0.x - compile 'org.redisson:redisson-spring-data-20:3.10.7' + compile 'org.redisson:redisson-spring-data-20:3.11.0' // for Spring Data Redis v.2.1.x - compile 'org.redisson:redisson-spring-data-21:3.10.7' + compile 'org.redisson:redisson-spring-data-21:3.11.0' ``` ### 2. Register `RedissonConnectionFactory` in Spring context From 6859087e6a5c2e8ae4544903df484cfbda3bd23d Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 29 May 2019 10:58:01 +0300 Subject: [PATCH 8/9] Update README.md --- redisson-tomcat/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/redisson-tomcat/README.md b/redisson-tomcat/README.md index 323726b47..1ed6f2410 100644 --- a/redisson-tomcat/README.md +++ b/redisson-tomcat/README.md @@ -66,14 +66,14 @@ Add `RedissonSessionManager` into `tomcat/conf/context.xml` ### 2. Copy two jars into `TOMCAT_BASE/lib` directory: -[redisson-all-3.10.7.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-all&v=3.10.7&e=jar) +[redisson-all-3.11.0.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-all&v=3.11.0&e=jar) for Tomcat 6.x -[redisson-tomcat-6-3.10.7.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-6&v=3.10.7&e=jar) +[redisson-tomcat-6-3.10.7.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-6&v=3.11.0&e=jar) for Tomcat 7.x -[redisson-tomcat-7-3.10.7.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-7&v=3.10.7&e=jar) +[redisson-tomcat-7-3.11.0.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-7&v=3.11.0&e=jar) for Tomcat 8.x -[redisson-tomcat-8-3.10.7.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-8&v=3.10.7&e=jar) +[redisson-tomcat-8-3.11.0.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-8&v=3.11.0&e=jar) for Tomcat 9.x -[redisson-tomcat-9-3.10.7.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-9&v=3.10.7&e=jar) +[redisson-tomcat-9-3.11.0.jar](https://repository.sonatype.org/service/local/artifact/maven/redirect?r=central-proxy&g=org.redisson&a=redisson-tomcat-9&v=3.11.0&e=jar) From 72ba19756dd24f144b717f63543d7d6021d452c0 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Wed, 29 May 2019 10:58:30 +0300 Subject: [PATCH 9/9] Update README.md --- redisson-tomcat/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redisson-tomcat/README.md b/redisson-tomcat/README.md index 1ed6f2410..c1888d2d8 100644 --- a/redisson-tomcat/README.md +++ b/redisson-tomcat/README.md @@ -26,7 +26,7 @@ Add `RedissonSessionManager` into `tomcat/conf/context.xml` * `REDIS` - stores attributes into Redis only. Default mode.
- `broadcastSessionEvents` - if `true` then `sessionCreated` and `sessionDestroyed` events broadcasted across all Tomcat instances and causes all registered HttpSessionListeners to be triggered. Default is `false`. + `broadcastSessionEvents` - if `true` then `sessionCreated` and `sessionDestroyed` events are broadcasted across all Tomcat instances and cause all registered HttpSessionListeners to be triggered. Default is `false`. `updateMode` - Session attributes update mode. Two modes are available: * `DEFAULT` - session attributes are stored into Redis only through setAttribute method. Default mode.