Commit Graph

795 Commits

Author SHA1 Message Date
Mark Paluch
1ceb7d4c8b DATAREDIS-1082 - Polishing.
Tweak documentation wording. Remove trailing whitespaces. Remove unused methods. Improve method names. Return zero stats when stats do not get collected.

Original Pull Request: #545
2020-07-13 08:51:48 +02:00
Christoph Strobl
72c20447b8 DATAREDIS-1082 - Capture per cache statistics.
Original Pull Request: #545
2020-07-13 08:51:06 +02:00
Mark Paluch
6daeb1a04c DATAREDIS-1082 - Expose cache metrics for RedisCache.
We now expose CacheStatistics for RedisCache. Each cache tracks its statistics (retrievals, hits, misses, stores, removals, lock wait) locally. CacheStatistics is exposed through RedisCacheWriter to allow for statistics customization depending on the cache writer strategy. The statistic object is a singleton per cache instance that gets updated with as the cache operates.

RedisCache cache = …;
CacheStatistics statistics = cache.getStatistics();
statistics.getRetrievals();
statistics.getHits();

Original Pull Request: #545
2020-07-13 08:50:12 +02:00
Christoph Strobl
488e658f5d DATAREDIS-1178 - Pass ScanOptions on to connection.sScan when using ReactiveSetOperations. 2020-07-07 08:22:55 +02:00
Christoph Strobl
fee28536e5 DATAREDIS-911 - Polishing.
Reorder tests and remove deprecation warning in MappingRedisConverter.

Original Pull Request: #537
2020-06-22 14:43:48 +02:00
sajib
0a67b7a096 DATAREDIS-911 - Support CustomConverter for root entity.
Original Pull Request: #537
2020-06-22 14:42:26 +02:00
Christoph Strobl
bf4f41bf52 DATAREDIS-1150 - Polishing
Defer cluster topology resolution, update Javadoc and add tests.

Original Pull Request: #533
2020-06-17 10:02:35 +02:00
Mark Paluch
9501036754 DATAREDIS-1150 - Polishing.
Reorder implementation methods according to interface order.

original Pull Request: #533
2020-06-17 10:02:05 +02:00
Mark Paluch
6d32eab67f DATAREDIS-1150 - Add ReactiveRedisClusterCommands.
We now provide Redis Cluster commands (CLUSTER INFO, CLUSTER NODES, …) exposed through a reactive API.

Original Pull Request: #533
2020-06-17 10:01:35 +02:00
Tamer Soliman
9272fd68b7 DATAREDIS-1159 - Unify return type of RedisStaticMasterReplicaConfiguration.node(…) methods.
RedisStaticMasterReplicaConfiguration.node(…) now returns the more specific RedisStaticMasterReplicaConfiguration type instead of returning the StaticMasterReplicaConfiguration interface.

Original pull request: #536.
2020-06-10 09:31:02 +02:00
Mark Paluch
e6410fea51 DATAREDIS-1161 - Avoid returning null in ReactiveHashCommands.hGet(…).
We now use flatMapIterable(…).next() to return the first value from the hash. Previously, if the returned list was empty, we could return a null value in the mapping function which might have caused an exception.

Original Pull Request: #538
2020-06-10 07:58:31 +02:00
Mark Paluch
2bcb06acc8 DATAREDIS-1143 - Polishing.
Replace delomboked equals/hashCode with Spring-style equals/hashCode.

Original pull request: #530.
2020-05-14 11:58:44 +02:00
Christoph Strobl
51cba2bcb1 DATAREDIS-1143 - Delombok source files.
Original pull request: #530.
2020-05-14 11:58:34 +02:00
andrea.como
2d04af6a99 DATAREDIS-1142 - Use Lettuce reactive cluster connection if configured.
Original Pull Request: #529
2020-05-12 11:07:08 +02:00
Mark Paluch
8c59586fc8 DATAREDIS-1042 - Polishing.
Set MKSTREAM by default when calling createGroup on the operations API as that should be the default behavior in the first place. Reformat code. Add since tags.

Original pull request: #527.
2020-05-07 16:00:44 +02:00
Tugdual Grall
d7b8d9b018 DATAREDIS-1042 - Allow consumer group creation without an existing stream.
Original pull request: #527.
2020-05-07 15:47:20 +02:00
Mark Paluch
c4623ef059 DATAREDIS-1139 - Fix command constants.
Deprecate constants with typos. Fix mode of ZREMRANGEBYSCORE.

Original Pull Request: #528
2020-05-06 15:23:51 +02:00
Mark Paluch
3b9de23297 DATAREDIS-1138 - Polishing.
Add missing Nullable annotations.

Original Pull Request: #528
2020-05-06 15:22:53 +02:00
Mark Paluch
f4676edbd2 DATAREDIS-1138 - Fix detection whether XREAD is blocking.
We now correctly check if a BLOCK option is configured using a timeout of zero or higher. Previously we only checked if the configured value is greater than zero and didn't consider that a timeout of zero blocks indefinitely.

Original Pull Request: #528
2020-05-06 15:22:09 +02:00
Ajith Kumar
964c55959a DATAREDIS-1127 - Handling ping failures for getSentinelConnection method.
Original Pull Request: #524
2020-04-22 09:44:32 +02:00
Mark Paluch
254d60e820 DATAREDIS-1119 - Polishing.
Add getAndMap(…) method to simplify post-retrieval mapping of non-null values. Require key on XInfoCommand command construction.

Tweak javadoc. Reformat code.

Original pull request: #519.
2020-04-20 11:54:11 +02:00
Christoph Strobl
3f5533ea9a DATAREDIS-1119 - Support XINFO via ReactiveStreamCommands.
Original pull request: #519.
2020-04-20 11:54:09 +02:00
Christoph Strobl
c010472c42 DATAREDIS-1119 - Support XINFO via RedisStreamCommands.
Original pull request: #519.
2020-04-20 11:54:03 +02:00
Mark Paluch
649b579fe8 DATAREDIS-1122 - Polishing.
Consistently use Maxlen lettercasing. Add since tags. Reformat code.

Original pull request: #523.
2020-04-20 11:13:15 +02:00
Christoph Strobl
43ef4700c1 DATAREDIS-1122 - Add support for MAXLEN attribute of XADD.
Original pull request: #523.
2020-04-20 11:13:09 +02:00
Mark Paluch
3568f300f6 DATAREDIS-1106 - Polishing.
Add nullable annotations to methods that can return null. Update since tags. Extract phantom TTL to constant.

Original pull request: #521.
2020-04-07 11:56:31 +02:00
Christoph Strobl
cca1f7a8cf DATAREDIS-1106 - Remove expiration phantom key on delete via KeyValueAdapter.
Original pull request: #521.
2020-04-07 11:56:31 +02:00
Christoph Strobl
86b3f45783 DATAREDIS-1118 - Polishing.
Switch tests to JUnit Jupiter.

Original Pull Request: #522
2020-04-07 10:28:47 +02:00
Mark Paluch
0a8d431570 DATAREDIS-1118 - Allow configuration of RedisCacheWriter on existing RedisCacheManagerBuilder.
We now allow configuration of the RedisCacheWriter on existing RedisCacheManagerBuilder objects.

Original Pull Request: #522
2020-04-07 10:28:16 +02:00
lixinlei
6148bc3e66 DATAREDIS-1115 - Reduce log level for shared connection renewal.
Original pull request: #485.
2020-03-11 11:03:37 +01:00
Mark Paluch
87d3bb5660 DATAREDIS-1084 - Polishing.
Rename PendingMessage.getStringId to PendingMessage.getIdAsString for consistent naming scheme. Remove getElapsedTimeSinceLastDeliveryMS method for now in favor of getElapsedTimeSinceLastDelivery.

Use primitive long instead of boxed wrapper to avoid nullability where possible. Move PendingMessage* converters to StreamConverters.

Add assertions.

Original pull request: #512.
2020-03-10 09:41:10 +01:00
Christoph Strobl
52fd648157 DATAREDIS-1084 - Add support for XCLAIM.
Original pull request: #512.
2020-03-10 09:41:07 +01:00
Christoph Strobl
ca01670c36 DATAREDIS-1084 - Add support for XPENDING.
Original pull request: #512.
2020-03-10 09:40:55 +01:00
christian.rest
df720bde8f DATAREDIS-1110 - Fix generic type parameter of StreamMessageListenerContainerOptionsBuilder.hashValueSerializer()
Original Pull Request: #515
2020-03-09 12:48:09 +01:00
Christoph Strobl
9b0d405fdf DATAREDIS-1011 - Polishing.
Fix copyright headers and update documentation.

Original Pull Request: #511
2020-03-09 11:03:57 +01:00
Mark Paluch
42ad8d190d DATAREDIS-1011 - Allow configuration of Lettuce pipelining flush behavior.
We now allow customization of flushing when using pipelining with Lettuce. Lettuce flushes each command by default. To optimize for performance, flushing behavior can be customized using a PipeliningFlushPolicy. Flush each command, flush on close and flush after n commands are the bundled implementations that can be configured on LettuceConnectionFactory.

Original Pull Request: #511
2020-03-09 11:03:31 +01:00
Mark Paluch
5891489b9d DATAREDIS-1105 - Fix typo on RedisTemplate javadoc.
Also fix typo in log message.
2020-02-26 09:47:15 +01:00
Mark Paluch
fec6e226d6 DATAREDIS-1104 - Polishing.
Fix typos. Improve Javadoc.
2020-02-25 13:55:27 +01:00
Mark Paluch
aa4d12433b DATAREDIS-1104 - Suppress connection close failures when unbinding a connection.
We now no longer propagate exceptions that happen during connection disposal but instead we log them on DEBUG level to avoid exception masking.
2020-02-25 13:53:46 +01:00
Mark Paluch
c758a042c8 DATAREDIS-1080 - Improve documentation on Atomic number implementations.
Clarify that the initialization value overwrites the existing key if it exists.
2020-02-13 13:59:31 +01:00
Mark Paluch
0f609ad7f4 DATAREDIS-1093 - Document that Master/Replica connections do not support Pub/Sub. 2020-02-13 11:55:44 +01:00
Mark Paluch
1c7780380d DATAREDIS-450 - Polishing.
Update Javadoc and add Deprecated annotation.
2020-02-13 10:56:25 +01:00
Christoph Strobl
bbb4e10a85 DATAREDIS-1096 - Polishing.
Remove unused imports and transition to java.time API.

Original Pull Request: #510
2020-02-12 07:58:55 +01:00
Mark Paluch
871c6713dd DATAREDIS-1096 - Move off deprecated Lettuce API.
Original Pull Request: #510
2020-02-12 07:52:56 +01:00
Mark Paluch
86bdbb70a1 DATAREDIS-1095 - Polishing.
Move off deprecated methods.

Original Pull Request: #509
2020-02-11 14:46:26 +01:00
Mark Paluch
87bbee4310 DATAREDIS-1095 - Use Flux.usingWhen(…) in DefaultReactiveScriptExecutor.execute(…).
We now consistently use Flux.usingWhen(…) to obtain and release Redis connections without blocking the calling thread.

Original Pull Request: #509
2020-02-11 14:46:02 +01:00
Mark Paluch
19d7a30143 DATAREDIS-1097 - Improve synchronization on failure in StreamMessageListenerContainer.
Perform cancellation first, then notify the error handler to avoid race contions such as a notified error handler while the container is still active.
2020-02-11 11:11:39 +01:00
Mark Paluch
e62ecbb1a9 DATAREDIS-538 - Allow @TimeToLive methods that are not accessible by default.
We allow now the use of non-public classes with a @TimeToLive method and @TimeToLive on non-public methods.

Original Pull Request: #231
2020-02-03 14:25:55 +01:00
Mark Paluch
54229d2388 DATAREDIS-1079 - Polishing.
Deprecate old isAutoAck/autoAck methods in favor of isAutoAcknowledge/autoAcknowledge methods with improved names.

Original pull request: #508.
2020-01-31 16:26:11 +01:00
Christoph Strobl
fccaeb23e9 DATAREDIS-1079 - Fix StreamMessageListenerContainer autoAck on receive.
Original pull request: #508.
2020-01-31 16:25:37 +01:00