Commit Graph

1108 Commits

Author SHA1 Message Date
John Blum
f3de2d51dc Allow users to customize the internal ObjectMapper created by GenericJackson2JsonRedisSerializer.
We now allow the internally created Jackson ObjectMapper to be customized and further configured after construction of the GenericJackson2JsonRedisSerializer when a user does not explicitly provide a custom ObjectMapper during construction. Even when providing a custom ObjectMapper, not all configuration applied by the GenericJackson2JsonRedisSerialzier (such as (standard) type resolution) to the internal ObjectMapper would get applied to the user-provided ObjectMapper as well.

Closes #2601
2023-06-14 13:41:19 -07:00
John Blum
f1492e1790 Refactor JdkSerializationRedisSerializer.
* Annotate deserialize(..) with @Override.
* Cleanup source code.
* Edit Javadoc.

Closes #2610
2023-06-14 12:55:32 -07:00
John Blum
4da3bdf798 Refactor GenericJackson2JsonRedisSerializer.
* Cleanup and simpifly source code.
* Fix compiler warnings.
* Edit Javadoc.

Closes #2609
2023-06-14 12:16:40 -07:00
John Blum
433bb89d9b Fix missing/misplacement of <p> tag in Jackson2HashMapper Javadoc.
Resolves #2586
2023-06-14 09:42:52 -07:00
John Blum
f8a9fdf372 Polish.
* Cleanup source code in Jackson2HashMapper; Edit Javadoc.
* Add test cases for the un/flattened mapping of an Object with a timestamp (LocalDateTime) as provided by the user in Issue #2593.

Closes #2593
2023-06-12 13:35:43 -07:00
Christoph Strobl
637964eed8 Fix Jackson (hash) mapping for BigDecimal/BigInteger scalar values and Java Time types.
Once again, the SD Redis Jackson2HashMapper can now de/serialize Objects with BigDecimal/BigInteger values along with java.time types, such as java.time.LocalDateTime.

Additionally, splits the unit tests for flattening and unflattening of the hash mapping into 2 separate test classes to be picked up in the SD Redis test suite.

Resolves #2593
2023-06-12 13:35:37 -07:00
John Blum
770fbac670 Review and polish for confiuring a cache lock TTL.
Closes #2300
Pull request: #2597.
2023-06-12 13:02:15 -07:00
Mark Paluch
9aa2eb4b02 Allow configuration of cache lock TTL.
RedisCacheWriter now can now issue locks that expire using TtlFunction to prevent eternal locks.

Closes #2300
Pull request: #2597
2023-06-12 12:38:51 -07:00
Mark Paluch
14571a5569 Polishing.
Reformat code. Fix typo.

See #2591
Original pull request: #2592
2023-06-08 16:21:10 -07:00
Yanming Zhou
734a359e6a Construct LettuceObservationContext with parent observation
After this commit, LettuceObservationContext.setParentObservation() is called right after Context rather than Observation created, then Context.getParentObservation() could be used in ObservationPredicate to determine whether Observation should be created.

Fixes #2591
Original pull request: #2592
2023-06-08 16:21:05 -07:00
Mark Paluch
a3cb205060 Fix ZAddArgs.isEmpty.
isEmpty now returns true if empty. Previously, the boolean returns were flipped.

Closes #2588
2023-06-08 16:21:00 -07:00
Mark Paluch
3ba75d2aad Use OBJECT, PTTL, and RESTORE JedisCluster methods directly.
We now use directly JedisCluster methods instead of using our command executor routing as JedisCluster exposes the methods and we no longer require our own command routing.

Closes #2589
2023-06-08 16:20:42 -07:00
John Blum
050beebc74 Edit and cleanup Javadoc.
Resolves #2586
2023-05-23 11:03:46 -07:00
John Blum
2246a98a93 Polish.
Additionally, refactors and cleans up the Redis cache extension and infrastructure.

Closes #2583
2023-05-18 17:14:41 -07:00
Yanming Zhou
9f98f0d5fa Improve RedisCacheManagerBuilder to expose applied RedisCacheConfiguration.
Now it is possible to construct a new, custom default RedisCacheConfiguration from an existing, default RedisCacheConfiguration.

This is useful in a Spring Boot context using the RedisCacheManagerBuilderCustomizer and acquiring access to the default RedisCacheConfiguration, which likely originated from Spring Boot Redis CacheProperties.

Resolves #2583
2023-05-18 17:13:54 -07:00
Mark Paluch
5e8f73a00a Make LettuceObservationContext public to use it with Observation Predicates.
Close #2550
2023-05-09 15:13:33 +02:00
Mark Paluch
8c9af9d46a Polishing.
Delegate RedisClientProvider.getClient() across connection providers. Use SimpleAsyncTaskExecutor as default in ClusterCommandExecutor to avoid ThreadPoolTaskExecutor pollution.

See #2575
2023-05-09 15:04:51 +02:00
Mark Paluch
aadfae62a4 Pass Page.size() to GEORADIUS COUNT.
We now reuse the page size to initially limit Geo results within Redis.

Closes #1242
2023-05-08 14:11:02 +02:00
John Blum
a147385431 Fix element ordering issue on a mapped de/serialized entity having List property.
Closes #2565
2023-05-07 11:49:18 -07:00
Wonchul Heo
c7f51a2073 Fix typo.
Original pull request #2567
2023-05-03 10:48:18 +02:00
Mark Paluch
56c633c3a9 Fix BoundingBox.width return value.
We now return the correct value.

Closes #2526
2023-04-24 14:45:55 +02:00
remeio
2692aafc63 Tweak Javadoc wording of mergeArrays.
Closes #2558
2023-04-24 14:11:56 +02:00
Alexander Münch
6316609fbf Fix Javadoc in RedisCacheConfiguration.
The prefixCacheNameWith() method returns a new instance, not `this`.

Closes #2539
2023-04-03 07:41:58 -07:00
John Blum
7e1746cc2a Polish.
Closes #2466

See #2465
2023-03-02 19:13:08 -08:00
Marcin Zielinski
992905360b Add support for XCLAIM in StreamOperations
Closes #2465
2023-03-02 19:13:02 -08:00
John Blum
149037d5d5 Replace TODO comment with Issue ticket changing RedisAccessor to abstract.
See #2494
See #2493
2023-01-24 09:42:18 -08:00
John Blum
b958756d15 Annotate indexOf(..) and lastIndexOf(..) ListOperations with @Nullable.
Closes #2488
2023-01-19 16:58:53 -08:00
John Blum
e4c4c7e040 Refactor RedisAccessor.
* Annotate API with missing Spring @NonNull and @Nullable annotations.
* Redefine afterPropertiesSet() in terms of getRequiredConnectionFactory().
* Edit Javadoc.

Closes #2493
2023-01-19 16:15:45 -08:00
Mark Paluch
e9e2c53d78 Incorporate review feedback.
Reduce object instantiations.

Original Pull Request: #2467
2023-01-13 07:45:20 +01:00
Mark Paluch
230c764c69 Track subscriptions and unsubscriptions in LettuceReactiveRedisConnection.
We now track subscriptions and unsubscriptions in the reactive API to ensure that we do not prematurely unsubscribe from a channel or pattern if the topic was subscribed multiple times.

Original Pull Request: #2467
2023-01-13 07:44:46 +01:00
Mark Paluch
7b6a697265 Fix ReactiveRedisMessageListenerContainer disposal via ReactiveRedisTemplate.listenToLater(…).
We now properly dispose the container at the right time and not as result of the Mono<…> completion.

Closes: #2386
Original Pull Request: #2467
2023-01-13 07:43:37 +01:00
Mark Paluch
716640b7a8 Add output hints for HSTRLEN, XLEN, and XTRIM.
See #2473

Original pull request: #2482
2023-01-11 12:38:21 -08:00
Mark Paluch
ea37a7347a Use correct output for ZCARD command using LettuceConnection.execute(…).
We now provide a type hint for the ZCARD command.

Closes #2473

Original pull request: #2482
2023-01-11 12:37:58 -08:00
Mark Paluch
fb11f314fc Add assertions to fail early on absent values using StreamMessageListenerContainer.
Closes #2472
2023-01-02 11:10:10 +01:00
Mark Paluch
d9b6d4d395 Extend license header copyright years to 2023.
See #2476
2023-01-02 09:53:38 +01:00
Mark Paluch
cafa3c7a86 Align with KeyValue KeySpaceResolver changes.
We now use the KeyValue KeySpaceResolver to primarily detect the keyspace to be used instead of a fallback.

See #2457
See #2452
2022-12-07 11:14:36 +01:00
Mark Paluch
befafa8b0f Correctly consider KeySpaceResolver from KeyValueMappingContext.
Closes #2457
2022-12-07 11:08:44 +01:00
skyjiang
a968b19761 Remove duplicate map keys in Lettuce TypeHints.
Closes #2314
2022-11-11 10:35:09 +01:00
Mark Paluch
ca4e5cd5d2 Fix emptiness check in MappingRedisConverter.
Closes #2446
2022-11-11 10:33:31 +01:00
Christoph Strobl
e5a1011ab7 Add Nullable annotation to parameter of overridden equals method.
Closes: #2450
Original pull request: #2451
2022-11-11 10:23:44 +01:00
Christoph Strobl
e99463c4d9 Add missing RedisClient runtime hint.
Closes: #2440
2022-10-21 15:59:07 +02:00
Mark Paluch
ccdd5d2d98 Add observability adapter for Lettuce.
We now provide MicrometerTracingAdapter to connect Lettuce to Micrometer Tracing.

Original pull request: #2439
Closes #2348
2022-10-21 14:18:07 +02:00
Mark Paluch
8f37abe950 Add support for Lettuce's 6.2 RedisCredentialsProvider.
We now support construction of RedisCredentialsProvider through LettuceClientConfiguration and RedisCredentialsProviderFactory.

The default implementation adapts credentials configured in RedisConfiguration objects.

Closes: #2376
Original Pull Request: #2387
2022-10-05 14:43:28 +02:00
Mark Paluch
c3ee0d8b3c Properly parse IPv6 host and port into RedisNode.
Closes #2418
2022-10-04 09:41:52 +02:00
Mark Paluch
4371d3f2e0 Improve failure-safety of Cursor.
Any failures during opening the cursor or scanning now close the cursor and release associated resources.

Closes #2414
2022-09-30 11:46:09 +02:00
断桥烟雨
eadaf9eb2b Fix typo in Javadoc.
Closes #2417
2022-09-30 11:34:12 +02:00
Mark Paluch
d94e9e87bd Refine methods accepting floating-point Range values.
For easier usage we now use Range<? extends Number> instead of Range<Number> to allow Range<Double> usage.

Original pull request: #2370.
Closes #2421
2022-09-30 11:25:40 +02:00
Mark Paluch
62932e2b47 Polishing.
Add reactive ZRANGESTORE support. Support rangeAndStore in RedisZSet.

Refine assertion messages. Refine overloads.

Original pull request: #2370.
See #2345
2022-09-30 11:25:32 +02:00
Shyngys Sapraliyev
40d078f66d Added zRangeStoreByLex and zRangeStoreByScore for ZRANGESTORE command.
Original pull request: #2370.
Closes #2345
2022-09-30 11:25:08 +02:00
Mark Paluch
bc983feac2 Refine HMGET and MGET documentation.
Closes #2309
2022-09-22 09:40:45 +02:00