Commit Graph

1257 Commits

Author SHA1 Message Date
Christoph Strobl
f2a1af6cbb Make sure db index is only set once.
See: #2984
2024-09-13 09:38:22 +02:00
Mark Paluch
8777cf7fc6 Fix database selection on dedicated connection.
We now select the database on the dedicated connection. Previously, this call never happened on the dedicated connection and the only way a database could be selected is through the ConnectionFactory configuration.

Closes: #2984
Original Pull Request: #2990
2024-09-12 13:49:30 +02:00
Christoph Strobl
fd31e433c0 Polishing.
Move maxTime calculation for topology refresh to and delegate shouldUseCachedValue() to newly introduced overload.

Original Pull Request: #2989
2024-09-11 12:19:11 +02:00
Mark Paluch
1514461561 Use value object for topology caching.
We now use a value object for caching the topology to avoid races in updating the cache timestamp.

Also, we set the cache timestamp after obtaining the topology to avoid that I/O latency expires the topology cache.

Closes: #2986
Original Pull Request: #2989
2024-09-11 12:18:39 +02:00
Mark Paluch
297ee410dc Polishing.
Enable SCRIPT FLUSH and SCRIPT KILL for pipelining/transaction usage. Use lambdas where possible.

Original pull request: #2988
See #1455
2024-09-11 11:33:37 +02:00
Ivan Kripakov
b22f1ab84c Enable eval and evalsha in Jedis pipeline/transaction.
Original pull request: #2988
Closes #1455
2024-09-11 11:31:40 +02:00
Mark Paluch
9c5f21b840 Polishing.
Simplify code to use well-known Spring patterns.

Original pull request: #2752
See #2751
2024-09-10 14:03:02 +02:00
John Blum
44aa79e2b2 Replace use of String.format(…) with formatted Strings.
Original pull request: #2752
Closes #2751
2024-09-10 14:03:01 +02:00
jinkshower
b7f26fa30f Fix XAddOptions maxlen handling and XPendingOptions validation.
Closes #2982
Original pull request: #2985
2024-09-10 11:01:36 +02:00
Mark Paluch
15f541bf4c Polishing.
Improve pattern variable naming, use ClassUtils.getDescriptiveType(…) to avoid null-pointer exceptions. Simplify RedisOperationChain condition checks.

See #2788
2024-09-10 10:13:25 +02:00
Junghoon Ban
6190b3bff6 Improve readability in RedisQueryCreator.
Closes #2788
2024-09-10 10:13:25 +02:00
Junghoon Ban
803fd7101e Refactor Redis secondary-index key formatting.
Redis secondary-index keys are now formatted using helper methods instead of using chains of concatAll(toBytes(…)) sequences for more readability.

Original pull request: #2795
Closes: #2794
2024-09-10 09:35:14 +02:00
Christoph Strobl
0f45851190 Polishing.
Remove no longer needed wasLocked flag from CacheWriter.

Original Pull Request: #2948
2024-09-05 14:58:40 +02:00
Mark Paluch
49542eccee Apply time to idle in RedisCache.retrieve(…).
We now correctly apply time to idle on retrievals.

Original Pull Request: #2948
2024-09-05 14:57:28 +02:00
Mark Paluch
06bbd3dcab Use Redis locking for value retrieval synchronization.
We now use RedisCacheWriter to acquire and maintain the lock for value retrieval synchronization.

Closes: #2890
Original Pull Request: #2948
2024-09-05 14:56:59 +02:00
Mark Paluch
777f079114 Deprecate Micrometer Tracing code in favor of Lettuce's Micrometer support.
Closes #2561
2024-09-04 10:41:40 +02:00
Christoph Strobl
fb0f0bc07c Polishing.
Add new method to BoundStreamOperations and remove add accepting a Publisher.

Original Pull Request: #2936
2024-09-03 07:27:05 +02:00
jinkshower
486dc97623 Add overloads for StreamOperations add with additional XAddOptions.
Closes: #2915
Original Pull Request: #2936
2024-09-03 07:26:35 +02:00
Mark Paluch
bfa62bf31d Fix typos in Javadoc and assertion message.
Closes #2965
2024-08-30 14:09:44 +02:00
Christoph Strobl
bea01ef36c Fix error deserializing enum values with flattening Jackson2HashMapper.
This commit makes sure the mapper does not attempt to read type alias when deserializing enums.

Original pull request: #2980
Closes #2979
2024-08-30 09:57:33 +02:00
Mark Paluch
bd20c6d6f7 Polishing.
Add getFirst/getLast to Reactive and Bound Operations.

Simplify getLast implementation.

Reorder methods, tweak Javadoc, add since tags.

Original pull request: #2966
See #2937
2024-08-20 15:17:33 +02:00
Lee Jaeheon
a58bfd83c3 Add getFirst(K key) and getLast(K key) methods to ListOperations.
Original pull request: #2966
Closes #2937
2024-08-20 15:16:58 +02:00
Mark Paluch
e56e8c59b2 Add @Serial annotation to all serialVersionUID fields.
Closes #2973
2024-08-20 10:30:24 +02:00
Mark Paluch
3bc9423cd1 Polishing.
Replace instanceof check with pattern variable in production code.
Add missing Deprecated annotations.

See #2967
Original pull request: #2971
2024-08-20 10:25:14 +02:00
Christoph Strobl
af70648cb7 Add support for using custom BeanNameGenerator.
Closes: #2951
2024-08-09 10:40:30 +02:00
Mark Paluch
369b549b3c Default Lettuce shutdownQuietPeriod to zero.
Use a lower timeout for faster shutdown. Also, the quiet period is no longer configured through the shutdown timeout.

Closes #2945
2024-08-08 15:48:59 +02:00
Mark Paluch
ba2c9bae90 Polishing.
Remove verifyMode setters on LettuceConnectionFactory to not expose additional properties already exposed via ClientConfiguration.

Deprecate LettuceClientConfiguration.isVerifyPeer in favor of getVerifyMode.

See #2899
Original pull request: #2934
2024-08-08 15:32:54 +02:00
Zhian Chen
b41547e825 Replace Lettuce's verifyPeer with verifyMode.
Revert modifying type of VerifyMode for DefaultLettuceClientConfiguration constructor

Closes #2899
Original pull request: #2934
2024-08-08 15:32:54 +02:00
Mark Paluch
4ec61414c2 Polishing.
Reorder methods, reformat code.

Original Pull Request: #2959
2024-08-08 15:16:12 +02:00
Mark Paluch
20688c5a26 Revise RedisKeyValueAdapter to support lifecycle.
RedisKeyValueAdapter is now a lifecycle bean participating in Spring's SmartLifecycle support. Sticking to Lifecycle aligns with lifecycle support in RedisConnectionFactory where connections are stopped upon shutdown.

Previously, RedisKeyValueAdapter stopped connections upon destroy() causing a delayed shutdown behavior that was out of sync with its RedisConnectionFactory.

Closes: #2957
Original Pull Request: #2959
2024-08-08 15:16:12 +02:00
Christoph Strobl
57c294e508 Polishing.
Move reading shadow copy to dedicated method, update GH issue references, add test and fix formatting.

Original Pull Request: #2955
2024-08-06 10:05:04 +02:00
Lucian Torje
3e8081926d Do not attempt to delete phantom key if ShadowCopy is OFF
This commit makes sure to consider the ShadowCopy flag for expiring key events and prevents delete attempts if shadow copy is off.

Closes: #2954
Original Pull Request: #2955
2024-08-06 10:05:04 +02:00
Christoph Strobl
8b5f29ec96 Deprecate method instead of removing it.
Original Pull Request: #2935
2024-07-02 08:22:51 +02:00
Seungrae
4203a5bb67 Fix misspelled method name in RedisPersistentEntity.
Resolves: #2933
Closes: #2935
2024-07-02 08:21:32 +02:00
Mark Paluch
d996de2b07 Provide class loader to ProxyFactory to create BoundOperation proxies.
Closes #2920
2024-05-31 09:26:55 +02:00
Mark Paluch
8357c7d88b Polishing.
Revise builder. Accept builder components in builder methods instead of the builder factory method. Enforce valid parameters instead of lenient, potentially null parameters.

Introduce configuration means to control default typing. Extend tests.

See #2878
Original pull request: #2905
2024-05-21 14:56:17 +02:00
annemayor
33326aa2db Allow configuring custom NullValueSerializer.
Closes #2878
Original pull request: #2905
2024-05-21 14:56:17 +02:00
Mark Paluch
7ca2779ea5 Polishing.
Reformat code.
2024-05-13 15:10:04 +02:00
Roman Osadchuk
2809186e4d Use correct bitfield offset for INCRBY using Lettuce.
Closes #2903
Original pull request: #2901
2024-05-13 15:09:41 +02:00
Mark Paluch
3ab09fbd57 Polishing.
Refine unlocking by checking whether the lock was actually applied.

Reduce allocations, refine test assertions to check for concurrency.

See #1686
Original pull request: #2879
2024-04-19 08:57:32 +02:00
Chan Young
c980407f7d Improve atomicity in DefaultRedisCacheWriter.doLock().
Closes #1686
Original pull request: #2879
2024-04-19 08:57:28 +02:00
Christoph Strobl
7fad17a1de Resolve element type from NodeType before falling back to reflection when reading values from JsonNode.
This commit changes the node value retrieval so that it first tries to determine the node type before falling back to reflective access of the _value field.

Closes #2838
Original pull request: #2842
2024-04-19 08:22:35 +02:00
Mark Paluch
2f34f63e28 Polishing.
Reduce allocations by reusing IndexDefinition in RemoveIndexedData.

Tweak test method name.

See #2882
Original pull request: #2895
2024-04-19 08:17:47 +02:00
Christoph Strobl
8afabc1fe3 Clear indexed data if property value is set to null.
Closes #2882
Original pull request: #2895
2024-04-19 08:17:41 +02:00
Mark Paluch
9cad17171e Let QueryByExampleRedisExecutor implement ListQueryByExampleExecutor.
Closes #2880
2024-04-16 10:07:30 +02:00
Mark Paluch
4c8941df6b Refine ReactiveRedisOperations#listenTo and listenTo…Later Javadoc mentioning resource usage.
Closes #2229
2024-04-16 09:54:53 +02:00
Mark Paluch
7a94beb467 Allow RedisConnectionFactories to be initialized as part of the context lifecycle.
Lettuce and Jedis connection factories now can be configured to initialize early during afterPropertiesSet or configured whether the component should be auto-started by the container.

By default, connection factories auto-startup early.

Closes #2866
Original Pull Request: #2868
2024-04-11 15:34:05 +02:00
Christoph Strobl
779a0126e5 Polishing.
Avoid duplicate method lookup by keeping reference to Method.
Add missing native image hints for command proxies.

Original Pull Request: #2887
2024-04-11 13:35:27 +02:00
Mark Paluch
eed4c2af40 Consider intermediate command interface in ConnectionSplittingInterceptor.
We now consider requests to command API objects such as RedisConnection.keyCommands() in ConnectionSplittingInterceptor to identify the correct command and route it accordingly.

Closes: #2886
Original Pull Request: #2887
2024-04-11 13:31:58 +02:00
Mark Paluch
6f28b530b0 Use Lettuce functionality for Cluster commands where possible.
We now remove our own code in favor of Lettuce's advanced cluster support to leverage asynchronous functionality in pipelining.

Document pipelining restrictions regarding Redis Cluster.

Original Pull Request: #2889
2024-04-10 16:05:56 +02:00