Commit Graph

734 Commits

Author SHA1 Message Date
Tamil Selvan
0fdea07294 DATAREDIS-1062 - Disable select dbIndex in case dbIndex is 0.
When shareNativeConnection was set to false and enabled connection pooling before executing each Redis command, select dbIndex command was executed. Selecting the database can be superfluous when the connection already uses the right database index.

Original pull request: #496.
2019-11-22 12:59:47 +01:00
Mark Paluch
756829b01e DATAREDIS-1066 - Polishing.
Tweak wording. Reflect pooling constraints also in JedisConnectionFactory. Add author tags.

Original pull request: #494.
2019-11-18 10:18:08 +01:00
chao chang
b91d9ddf15 DATAREDIS-1066 - Add explanation for Jedis usePooling flag.
Original pull request: #494.
2019-11-18 10:16:27 +01:00
maoshuai
b5addd1eba DATAREDIS-1058 - Fix typo in assert message.
There is a typo in the message string: Pleaes -> Please.

Original pull request: #492.
2019-11-18 10:04:47 +01:00
Mark Paluch
2c5aea40a8 DATAREDIS-1064 - Polishing.
Tweak wording. Fix comments on ReactiveListOperations.

Original pull request: #499.
2019-11-18 09:59:55 +01:00
wqlm
d15c6f91cc DATAREDIS-1064 - Fix operation comments for lPush/rPush with pivot.
Original pull request: #499.
2019-11-18 09:59:32 +01:00
Mark Paluch
c6802ba247 DATAREDIS-1060 - Polishing.
Remove data node password reuse for sentinel as we favor explicit configuration over implicit.
Use RedisURI builder and not sentinel URI builder to configure the SentinelURI correctly.
Associate masterId with outermost RedisURI.

Original pull request: #495.
2019-11-12 15:37:14 +01:00
Christoph Strobl
1955074eb7 DATAREDIS-1060 - Redis password should not automatically be applied to Sentinel.
We now expose two separate properties in RedisSentinelConfiguration to configure the data password individually from the sentinel password.

Original pull request: #495.
2019-11-12 15:36:35 +01:00
Christoph Strobl
90be8d388e DATAREDIS-1045 - Fix target URI when setting password.
...and update reference documentation to reflect the changes.

Original Pull Request: #490
2019-10-30 14:11:23 +01:00
Mark Paluch
049f4d78ab DATAREDIS-1045 - Apply password to all Sentinel endpoints.
We now apply the password to all Sentinel endpoints described through RedisURI.

We also apply all remaining settings to all Sentinel endpoints to ensure configuration propagation.

Original Pull Request: #490
2019-10-30 13:58:46 +01:00
Christoph Strobl
3dfe7af60e DATAREDIS-1049 - Fix retrieval of empty keyspaceNotificationsConfigParameter used to keep server defaults.
Empty Strings changed to be considered null throwing an exception on getRequiredAttribute so we now set the value explicitly for this attribute when considered empty.

Original pull request: #491.
2019-10-30 13:35:46 +01:00
Christoph Strobl
9d62ead0e4 DATAREDIS-1053 - Polishing.
Use early return and fix issue reference in tests.

Original Pull Request: #488
2019-10-29 10:22:42 +01:00
Mark Paluch
6851186cf2 DATAREDIS-1053 - Subscribe to cleanup publishers when canceling a listenTo() stream.
Cleanup publishers are now subscribed to instead of setting the subscribeOn Scheduler to ensure connections get closed after canceling the stream.

Original Pull Request: #488
2019-10-29 10:22:17 +01:00
Mark Paluch
bc43d41073 DATAREDIS-1035 - Polishing.
Tweak Javadoc wording. Add missing Javadoc tag documentation.

Original pull request: #478.
2019-09-25 10:43:48 +02:00
Daniel Knittl-Frank
039e15b589 DATAREDIS-1035 - Fix Javadoc of RedisKeyExpiredEvent.
Original pull request: #478.
2019-09-25 10:43:48 +02:00
Mark Paluch
c67d4139f8 DATAREDIS-1034 - Polishing.
Pre-allocate operations objects for immutable serializationContext in ReactiveRedisTemplate.

Original pull request: #479.
2019-09-25 10:26:06 +02:00
Denis Zavedeev
64acdd2677 DATAREDIS-1034 - Fix visibility issues in RedisTemplate.
Previously it was possible in multi-threaded environment to:
* get a `null` from `opsFor*` methods in RedisTemplate.
* fail with a `NullPointerException` when working with a not-`null` reference returned from `RedisTemplate.opsFor*` methods.

Introduced changes initialize the fields eagerly to avoid visibility issues when accessing them and add a `final` modifier to the `AbstractOperations#template` field.

Original pull request: #479.
2019-09-25 10:25:38 +02:00
Mark Paluch
1e3921826e DATAREDIS-1032 - Polishing.
Add early return in cache key is a String. Convert convertCollectionLikeOrMapKey to non-nullable method by throwing an exception on a non-collection-like and Map-like type.

Original pull request: #475.
2019-09-04 14:59:00 +02:00
Christoph Strobl
e4630f951d DATAREDIS-1032 - Improve cache key converter registration.
Original pull request: #475.
2019-09-04 14:58:57 +02:00
Christoph Strobl
3a77f6a147 DATAREDIS-1032 - Fix CacheKey conversions for List, Map and Arrays.
Original pull request: #475.
2019-09-04 14:58:51 +02:00
Mark Paluch
1ae1acf98f DATAREDIS-1031 - Fix reactive pExpire/pExpireAt to invoke correct command.
We now invoke the correct PEXPIRE(AT) command. Previously, we invoked EXPIRE/EXPIREAT commands resulting in the wrong command being called.

Original Pull Request: #474
2019-09-04 13:45:18 +02:00
Christoph Strobl
1c48021cea DATAREDIS-1030 - Polishing.
Update Javadoc and remove superfluous afterPropertiesSet call.

Original Pull Request: #473
2019-09-04 13:44:11 +02:00
Mark Paluch
85669e6e69 DATAREDIS-1030 - Refine RedisScript creation.
Allow RedisScript.of(…) creation from a Resource.

Original Pull Request: #473
2019-09-04 13:43:48 +02:00
Mark Paluch
ac4909f139 DATAREDIS-974 - Polishing.
Consistently use getClientName() instead of qualified configuration accessor. Add missing Nullable annotation to getPassword() method. Reformat.

Original pull request: #472.
2019-09-02 14:59:45 +02:00
Christoph Strobl
849091d6cf DATAREDIS-974 - Apply SSL configuration when creating Jedis Cluster.
Original pull request: #472.
2019-09-02 14:59:40 +02:00
Christoph Strobl
07099dc833 DATAREDIS-1021 - Fix not null assertion in KeyCommands. 2019-08-19 09:59:05 +02:00
Mark Paluch
3fad6e5adc DATAREDIS-1027 - Dispose reactive LettuceConnectionProvider on connection factory shutdown.
LettuceConnectionFactory.destroy() now disposes also the reactive LettuceConnectionProvider to free resources of a connection pool.

Original Pull Request: #470
2019-08-16 11:17:36 +02:00
Christoph Strobl
a87e78cc5d DATAREDIS-1000 - Polishing.
Deprecate raw() and introduce dedicated methods for byteArray and byteBuffer.

Original Pull Request: #459
2019-07-30 14:37:30 +02:00
Mark Paluch
1491b93078 DATAREDIS-1000 - Fix raw/byte array serialization via RedisSerializationContext.
We now use the correct generic parameters for raw serialization via RedisSerializationContext returning ByteBuffer.

Introduce RedisSerializer.raw() and cleanups.

Original Pull Request: #459
2019-07-30 14:37:30 +02:00
Mark Paluch
7f9aca031a DATAREDIS-588 - Use JedisCluster.psetex(…) instead dispatching to a node.
We now use JedisCluster's psetex command instead of looking up the topology and dispatching the command ourselves.

Original Pull Request: #463
2019-07-30 07:51:44 +02:00
Mark Paluch
15fd1d38de DATAREDIS-588 - Polishing.
Simplify SET command usage with Jedis using various expiry and presence/absence flags to use consistently SetParams.

Original Pull Request: #463
2019-07-30 07:50:40 +02:00
Mark Paluch
2de4141514 DATAREDIS-1013 - Polishing.
Add test. Consider grammar depending on argument count.

Original pull request: #468.
2019-07-26 14:49:07 +02:00
Sebastien Volle
c6267e7d47 DATAREDIS-1013 - Fix argument count validation for SELECT command.
Redis SELECT command requires a single argument.

Original pull request: #468.
2019-07-26 14:48:51 +02:00
Mark Paluch
18c862210c DATAREDIS-1015 - Upgrade to Jedis 3.1.0.
Add pipelining/transactional implementation for zcount.
2019-07-24 12:17:00 +02:00
Mark Paluch
e506691f70 DATAREDIS-1001 - Polishing.
Use untyped serializers/serializers for Calendar and Date. Serialize JSR-310 types to String.

Original pull request: #467.
2019-07-09 16:44:57 +02:00
Christoph Strobl
a2831bef84 DATAREDIS-1001 - Fix java.util.Date hash mapping when flattening out entries.
The AsArrayTypeDeserializer causes date values to be rendered as an array like [java.util.Date, 1561543964015] an therefore is 1. skipped when flattening and 2. if not skipped cannot be read back.
We now register an error handler along with a custom deserializer aware of the used date format to write and read date values without having to store an array but just the date msec.

Original pull request: #467.
2019-07-09 16:33:33 +02:00
Christoph Strobl
1bdf875d45 DATAREDIS-976 - Polishing.
Add missing nullable annotations.

Original pull request: #457
2019-07-03 11:49:16 +02:00
Mark Paluch
05798fb637 DATAREDIS-976 - Allow extension of Lettuce Connection and Subscription classes.
LettuceConnection, LettuceClusterConnection, and LettuceSubscription can now be properly subclassed so they can be extended and created by LettuceConnectionFactory.

LettuceConnectionFactory provides template methods doCreateLettuceConnection and doCreateLettuceClusterConnection.

Original pull request: #450 & #457
2019-07-03 11:11:49 +02:00
Mark Paluch
6d4be98ce1 DATAREDIS-976 - Add Pub/Sub tests for Redis Cluster.
Original pull request: #450 & #457
2019-07-03 11:11:11 +02:00
Bruce Cloud
d14ca572d4 DATAREDIS-976 - Polishing.
ClusterConnectionProvider now accepts cluster-specific connection interfaces for Pub/Sub connections.

Original pull request: #450 & #457
2019-07-03 11:10:26 +02:00
Mark Paluch
ad54341953 DATAREDIS-990 - Propagate SSL configuration to Lettuce driver when using Redis Sentinel.
We now appropriately set SSL configuration when using the Lettuce driver with Redis Sentinel to enable Sentinel usage with SSL. Using Sentinel with SSL requires Lettuce 5.2 or newer.

Original Pull Request: #462
2019-07-03 09:48:04 +02:00
Christoph Strobl
64b8913764 DATAREDIS-988 - Polishing.
Original Pull Request: #453
2019-07-03 08:19:11 +02:00
Mark Paluch
ae2042b1eb DATAREDIS-988 - Consider transaction participation when releasing connections.
We now consider RedisTemplate's enableTransactionSupport configuration when releasing connections. Previously, we released bound connections when being in a read-only transaction regardless the configuration in RedisTemplate. This broke session callbacks that expected to remain on the same connection all but the first command were executed on a different connection.

Releasing a connection now no longer unbinds a connection if transaction support is disabled.

Original Pull Request: #453
2019-07-03 08:15:02 +02:00
Mark Paluch
da1de92645 DATAREDIS-988 - Discard transactions when releasing pooled connections.
We now check on connection release whether a connection is in MULTI state. If so, then we discard (rollback) the transaction to reset the connection to a fresh state.

Original Pull Request: #453
2019-07-03 08:03:19 +02:00
Mark Paluch
dfa366d8f7 DATAREDIS-999 - Use UsingWhen to apply functions to reactive Redis connections.
We now use Flux.usingWhen() to apply functions on reactive Redis connections and to release connections calling non-blocking methods.

Original Pull Request: #461
2019-07-02 13:52:52 +02:00
Mark Paluch
e9b5e6ee8e DATAREDIS-1005 - Polishing.
Implement cluster-wide scriptFlush(), scriptKill(), and scriptLoad(). Add method argument assertions and author tags. Adapt and fix tests.

Original pull request: #460.
2019-07-02 10:56:31 +02:00
Pavel Khokhlov
988a7e71b7 DATAREDIS-1005 - Add support for scripting commands for Jedis Cluster.
Original pull request: #460.
2019-07-02 10:54:10 +02:00
Mark Paluch
011ae5cda4 DATAREDIS-1009 - Polishing.
Increase StreamReadRequest.builder() method visibility to public.

Original pull request: #465.
2019-07-02 09:26:34 +02:00
Jacob O'Brien
558ac1f008 DATAREDIS-1009 - Make StreamMessageListenerContainerOptions builder method public.
Builder method should be public to be usable from the calling code.

Original pull request: #465.
2019-07-02 09:25:29 +02:00
weiyuc
1ee8200d1a DATAREDIS-1008 - Fix command reference in Javadoc.
Original pull request: #466.
2019-07-02 09:21:00 +02:00