Commit Graph

1799 Commits

Author SHA1 Message Date
Greg Turnquist
c8aa0ff019 DATAREDIS-920 - Run 'test' from Makefile. 2019-02-28 07:13:25 -06:00
Greg Turnquist
2e7a3c0685 DATAREDIS-920 - Add test task. 2019-02-28 06:51:17 -06:00
Christoph Strobl
0a4d6222e6 DATAREDIS-888 - Polishing
Original Pull Request: #384
2019-02-28 11:31:54 +01:00
Mark Paluch
22fdaba350 DATAREDIS-888 - Use Lettuce's read-only Partition view for node conversion.
We now use the read-only view of Lettuce's Partition object to convert Lettuce RedisClusterNode objects into Spring Data RedisClusterNode. The read-only view is atomic and does not require external synchronization.

Original Pull Request: #384
2019-02-28 11:31:32 +01:00
Christoph Strobl
3816b41dc8 DATAREDIS-937 - Polishing.
Original Pull Request: #386
2019-02-28 10:12:58 +01:00
Mark Paluch
22698a2976 DATAREDIS-937 - Add equals/hashCode methods to RedisZSetCommands.Weights.
Original Pull Request: #386
2019-02-28 10:12:29 +01:00
Mark Paluch
02c260aae1 DATAREDIS-937 - Add ReactiveRedisOperations Coroutines extensions.
This commit introduces Coroutines support for ReactiveRedisOperations and its sub-operation APIs via Kotlin extensions that provide
suspendable functions prefixed by `await` or suffixed by `AndAwait` for Mono based APIs.

Extensions for Flux will be added when Kotlin/kotlinx.coroutines#254 will be fixed.

Original Pull Request: #386
2019-02-28 10:11:45 +01:00
Christoph Strobl
087dba0735 DATAREDIS-848 - Polishing.
Original Pull Request: #382
2019-02-28 10:09:35 +01:00
Mark Paluch
cd05e5c0b9 DATAREDIS-848 - Use Lettuce's RestoreArgs to restore a key with replace option.
We now use RestoreArgs instead of constructing a custom command.

Original Pull Request: #382
2019-02-28 10:09:14 +01:00
Greg Turnquist
c4d93870d4 DATAREDIS-920 - Introduce Concourse. 2019-02-27 17:22:49 -06:00
Christoph Strobl
630ff46b45 DATAREDIS-935 - Allow configuration of a single initial cache in RedisCacheManagerBuilder.
Also, add introspection methods to expose the configured cache names/configurations.

Original pull request: #387.
2019-02-27 15:19:19 +01:00
Mark Paluch
32cc2a60e7 DATAREDIS-932 - Fix typo in exception message. 2019-02-18 08:48:24 +01:00
Mark Paluch
2622f054ab DATAREDIS-930 - Polishing.
Add since tags. Simplify test using Lombok annotations. Reformat code.

Original pull request: #385.
2019-02-15 11:09:38 +01:00
Luis De Bello
34951495ba DATAREDIS-930 - Return port/host of WithHostAndPort configurations using LettuceConnectionFactory.getPort() and getHost().
We now correctly return host and port from configurations that implement WithHostAndPort instead of always using RedisStandaloneConfiguration.

Original pull request: #385.
2019-02-15 11:08:08 +01:00
Mark Paluch
ff9802ad3d DATAREDIS-923 - Updated changelog. 2019-02-13 11:48:00 +01:00
Mark Paluch
06d87ba7e6 DATAREDIS-929 - Upgrade to Lettuce 5.1.4. 2019-02-12 13:25:07 +01:00
NFM
bc44cf61e8 DATAREDIS-915 - Fix RedisCacheManager example in reference documentation.
Original pull request: #380.
2019-02-07 15:01:10 +01:00
Mark Paluch
5cbf448b64 DATAREDIS-901 - Updated changelog. 2019-01-10 14:15:44 +01:00
Mark Paluch
e203f90f9c DATAREDIS-900 - Updated changelog. 2019-01-10 12:26:37 +01:00
Mark Paluch
e45a5a8df5 DATAREDIS-899 - Updated changelog. 2019-01-10 11:01:22 +01:00
Mark Paluch
62e48be873 DATAREDIS-918 - Enable Lettuce's global timeouts by default.
LettuceClientConfiguration now enables Lettuce's global timeouts by default to enable timeouts using the reactive API. This change prevents hanging Redis commands due to a blocked connection or when Redis is down. Timeouts are enabled through defaulting so setting ClientOptions or ClusterClientOptions overrides this behavior.

Original Pull Request: #381
2019-01-09 13:38:29 +01:00
Mark Paluch
8f209e3668 DATAREDIS-749 - Upgrade to Jedis 3.0.1.
Original pull request: #374.
2019-01-08 09:37:36 +01:00
Mark Paluch
f253d4128d DATAREDIS-749 - Polishing.
Upgrade to Jedis 3.0. Remove reflective sendCommand calls in favor of public Jedis sendCommand API. Invocations with null arguments by introducing overloads with argument defaulting. Fix exception translation because of a changed exception hierarchy. Fix tests and adapt tests to new transactional results that return null values instead if empty collections for nested array responses.

Reformat code. Add author tags. Add note to reference docs.

Original pull request: #374.
2019-01-08 09:37:34 +01:00
Guy Korland
f4680a180c DATAREDIS-749 - Upgrade to Jedis 3.0.0 M1.
Upgrade dependency version to 3.0.0 M1. Adapt to API changes.

Original pull request: #374.
2019-01-08 09:37:31 +01:00
Mark Paluch
3a07a0d8ed DATAREDIS-917 - Update copyright years to 2019. 2019-01-02 14:16:01 +01:00
Mark Paluch
7ec4641cc1 DATAREDIS-913 - Delete multiple keys through ReactiveRedisTemplate.delete(Publisher) and unlink(Publisher).
We now delete all keys that are emitted by the source publisher when invoking delete(Publisher) and unlink(Publisher). Both methods split incoming keys into chunks of 128 keys to keep a balance between latency and the issued command count.

Previously, delete(Publisher) and unlink(Publisher) only deleted the first key.

Original Pull Request: #379
2018-12-20 09:42:43 +01:00
Mark Paluch
d248c0cd7c DATAREDIS-909 - Fix constructor creation of entities with collection-typed properties.
We now consider the property type in value conversion for constructor arguments to provide the appropriate value type. Previously, we considered the component type which converted a Collection<T> to a single T that caused downstream ClassCastException.

Original Pull Request: #378
2018-12-20 08:54:12 +01:00
Mark Paluch
1f4bb973ea DATAREDIS-865 - Expose GenericJackson2JsonRedisSerializer.registerNullValueSerializer() for ObjectMapper customization.
We now expose registerNullValueSerializer(…) on GenericJackson2JsonRedisSerializer to allow customization of an externally provided ObjectMapper. NullValueSerializer was previously registered only within a constructor that takes classPropertyTypeName and provided no further possibilities to customize ObjectMapper.

Code wishing to provide a custom ObjectMapper can now call GenericJackson2JsonRedisSerializer.registerNullValueSerializer(objectMapper, …) and perform additional customizations before using ObjectMapper with GenericJackson2JsonRedisSerializer.

Original Pull Request: #376
2018-12-20 08:35:30 +01:00
Mark Paluch
ed79d14355 DATAREDIS-905 - Fix race condition in StreamMessageListenerContainer subscription activation.
Stream subscriptions now report reliably their state reflecting regarding activation, cancellation and while being active.

Previously, registering a subscription with immediate cancel could report an inactive subscription although StreamMessageListenerContainer could perform a stream read.

When activating a subscription in StreamMessageListenerContainer, awaiting activation (awaitStart(…)), immediately cancelling the subscription, and reading active state via Subscription.isActive(), Subscription.isActive() could report in this case false. This was because we checked that the status was either running or the stream read has reached event looping. The state was CANCELLED and the task thread had not yet reached the event loop and so there was a gap.

Original Pull Request: #377
2018-12-20 08:20:45 +01:00
Christoph Strobl
f02369fa0a DATAREDIS-906 - After release cleanups. 2018-12-11 11:07:53 +01:00
Christoph Strobl
d5410c6ea0 DATAREDIS-906 - Prepare next development iteration. 2018-12-11 11:07:51 +01:00
Christoph Strobl
b4d2db0ed5 DATAREDIS-906 - Release version 2.2 M1 (Moore). 2018-12-11 10:53:53 +01:00
Christoph Strobl
b6692b5956 DATAREDIS-906 - Prepare 2.2 M1 (Moore). 2018-12-11 10:53:11 +01:00
Christoph Strobl
02a6bd1cd0 DATAREDIS-906 - Updated changelog. 2018-12-11 10:53:10 +01:00
Mark Paluch
37789e6de3 DATAREDIS-907 - Simplify reference documentation setup. 2018-12-10 10:18:32 +01:00
chao chang
b510ef0606 DATAREDIS-903 - Remove Javadoc for unused RedisClusterConfiguration settings.
The following configuration keys which are not used in RedisClusterConfiguration, are removed from the Javadoc.
	 * spring.redis.cluster.timeout=5
	 * spring.redis.cluster.password=foobar

Original pull request: #375.
2018-12-06 08:46:59 +01:00
Christoph Strobl
c8bfc71678 DATAREDIS-721 - Polishing.
Original Pull Request: #315
2018-11-30 14:42:31 +01:00
Mark Paluch
b496aab2fb DATAREDIS-721 - Switch to non-blocking connect methods.
We now connect asynchronously to expose non-blocking connection behavior for reactive API usage. We also use a non-blocking, asynchronous pool implementation for connections that are used through a reactive API. Shared connection usage, which is blocking on the very first access can be pre-initialized during connection factory initialization instead of initialization on first access:

LettuceConnectionFactory connectionFactory = new LettuceConnectionFactory();
connectionFactory.setEagerInitialization(true);
connectionFactory.afterPropertiesSet();

We no longer require offloading of blocking connects to a dedicated scheduler which makes reactive API usage fully non-blocking.

Original Pull Request: #315
2018-11-30 12:54:12 +01:00
Mark Paluch
2b094850a2 DATAREDIS-721 - Use jackson version defined in parent pom.
Original Pull Request: #315
2018-11-30 12:52:45 +01:00
Mark Paluch
f3ec8782cd DATAREDIS-885 - Updated changelog. 2018-11-27 14:54:09 +01:00
Mark Paluch
0db274b381 DATAREDIS-879 - Updated changelog. 2018-11-27 12:36:49 +01:00
Mark Paluch
783565ab8d DATAREDIS-880 - Updated changelog. 2018-11-27 11:27:24 +01:00
Mark Paluch
1887aa6eef DATAREDIS-897 - Upgrade to Lettuce 5.1.3. 2018-11-26 16:44:11 +01:00
Mark Paluch
b440dc1f1f DATAREDIS-873 - Polishing.
Add since tags. Add tests. Reformat code. Update docs.

Original pull request: #361.
2018-11-23 12:01:56 +01:00
Dominys
724579b8a9 DATAREDIS-873 - Accept single collection parameter in SetOperations diff/inter/union methods.
We now accept a single collection parameter containing keys for diff/inter/union and their …store methods. Note that diff requires a specific key order to denote the initial set to compare to.

Original pull request: #361.
2018-11-23 12:01:46 +01:00
Mark Paluch
6921ab01bf DATAREDIS-890 - Polishing.
Add author tags. Use try-with-resources to close Jedis.

Original pull request: #373.
2018-11-23 10:18:00 +01:00
ChenGuanqun
9d47c48e22 DATAREDIS-890 - Randomize Redis Cluster node order before topology retrieval.
We now shuffle the set of Redis Cluster nodes before retrieving the topology. This change reduces load on the first node in the known nodes set.

Original pull request: #373.
2018-11-23 10:18:00 +01:00
Christoph Strobl
dc0ce19cd0 DATAREDIS-864 - Polishing.
Update Javadoc, remove unused code and fix some warnings.

Original Pull Request: #356
2018-11-22 10:50:09 +01:00
Mark Paluch
8858e0f1be DATAREDIS-864 - Leave XREAD COUNT unconfigured if not configured through builder.
XREAD does no longer apply a COUNT if the count was left unconfigured on StreamReadOperationsBuilder. This removes the limitation of batch size 1 and allows generally an increased throughput in default configuration.

Original Pull Request: #356
2018-11-22 10:49:27 +01:00
Mark Paluch
eafcb331d8 DATAREDIS-864 - Polishing.
Exract nested Stream types into connection.stream package. Extract common code from Template-API based toObjectRecord handling into StreamObjectMapper.

StreamReceiver and StreamMessageListenerContainer now can emit MapRecord or ObjectRecord for easier consumption of stream records.

Original Pull Request: #356
2018-11-22 10:49:06 +01:00