Skip to content

Commit 4e2fb1b

Browse files
committed
DATAREDIS-626 - Polishing.
Refactor server and scripting commands to their own implementations and interfaces. Fix JavaDoc indentations. Fix typos. Replace explicit type arguments with diamond syntax. Replace anonymous inner classes with method references and lambdas, where possible. Use shared ClientResources with LettuceConnectionFactory tests. Align reactive command implementation visibility with blocking command implementation visibility to package-protected. These implementations are not an extension point and subject to be used through their interfaces. Original pull request: spring-projects#247.
1 parent c636400 commit 4e2fb1b

File tree

75 files changed

+3597
-3216
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

75 files changed

+3597
-3216
lines changed

src/main/asciidoc/new-features.adoc

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ New and noteworthy in the latest releases.
99
* Upgrade to Java 8.
1010
* Removed support for SRP and JRedis drivers.
1111
* Upgrade to `Lettuce` 5.0.
12-
* Reactive connection support using https://github.com/mp911de/lettuce[mp911de/lettuce]
12+
* Reactive connection support using https://github.com/lettuce-io/lettuce-core[lettuce-io/lettuce-core].
13+
* Introduce Redis feature-specific interfaces for `RedisConnection`.
14+
1315

1416
[[new-in-1.8.0]]
1517
== New in Spring Data Redis 1.8
@@ -30,7 +32,7 @@ New and noteworthy in the latest releases.
3032
* Support for Spring Data Repository abstractions (see <<redis.repositories>>).
3133

3234
[[new-in-1-6-0]]
33-
== New in Spring Data Redis 1.6
35+
== New in Spring Data Redis 1.6
3436

3537
* The `Lettuce` Redis driver switched from https://github.com/wg/lettuce[wg/lettuce] to https://github.com/mp911de/lettuce[mp911de/lettuce].
3638
* Support for `ZRANGEBYLEX`.
@@ -39,7 +41,7 @@ New and noteworthy in the latest releases.
3941
* Generic Jackson2 `RedisSerializer` making use of Jackson's polymorphic deserialization.
4042

4143
[[new-in-1-5-0]]
42-
== New in Spring Data Redis 1.5
44+
== New in Spring Data Redis 1.5
4345

4446
* Add support for Redis HyperLogLog commands `PFADD`, `PFCOUNT` and `PFMERGE`.
4547
* Configurable `JavaType` lookup for Jackson based `RedisSerializers`.

src/main/java/org/springframework/data/redis/connection/ClusterCommandExecutor.java

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,8 @@
1515
*/
1616
package org.springframework.data.redis.connection;
1717

18-
import java.util.ArrayList;
19-
import java.util.Arrays;
20-
import java.util.Collection;
21-
import java.util.Collections;
22-
import java.util.Comparator;
23-
import java.util.HashMap;
24-
import java.util.HashSet;
25-
import java.util.LinkedHashMap;
26-
import java.util.LinkedHashSet;
27-
import java.util.List;
28-
import java.util.Map;
18+
import java.util.*;
2919
import java.util.Map.Entry;
30-
import java.util.Random;
31-
import java.util.Set;
32-
import java.util.concurrent.Callable;
3320
import java.util.concurrent.ExecutionException;
3421
import java.util.concurrent.Future;
3522

@@ -215,13 +202,7 @@ public <S, T> MulitNodeResult<T> executeCommandAsyncOnNodes(final ClusterCommand
215202
Map<NodeExecution, Future<NodeResult<T>>> futures = new LinkedHashMap<NodeExecution, Future<NodeResult<T>>>();
216203
for (final RedisClusterNode node : resolvedRedisClusterNodes) {
217204

218-
futures.put(new NodeExecution(node), executor.submit(new Callable<NodeResult<T>>() {
219-
220-
@Override
221-
public NodeResult<T> call() throws Exception {
222-
return executeCommandOnSingleNode(callback, node);
223-
}
224-
}));
205+
futures.put(new NodeExecution(node), executor.submit(() -> executeCommandOnSingleNode(callback, node)));
225206
}
226207

227208
return collectResults(futures);
@@ -310,13 +291,8 @@ public <S, T> MulitNodeResult<T> executeMuliKeyCommand(final MultiKeyClusterComm
310291

311292
if (entry.getKey().isMaster()) {
312293
for (final byte[] key : entry.getValue()) {
313-
futures.put(new NodeExecution(entry.getKey(), key), executor.submit(new Callable<NodeResult<T>>() {
314-
315-
@Override
316-
public NodeResult<T> call() throws Exception {
317-
return executeMultiKeyCommandOnSingleNode(cmd, entry.getKey(), key);
318-
}
319-
}));
294+
futures.put(new NodeExecution(entry.getKey(), key),
295+
executor.submit(() -> executeMultiKeyCommandOnSingleNode(cmd, entry.getKey(), key)));
320296
}
321297
}
322298
}

src/main/java/org/springframework/data/redis/connection/DefaultedRedisClusterConnection.java

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,120 @@
1515
*/
1616
package org.springframework.data.redis.connection;
1717

18+
import java.util.List;
19+
import java.util.Properties;
20+
21+
import org.springframework.data.redis.core.types.RedisClientInfo;
22+
1823
/**
1924
* @author Christoph Strobl
25+
* @author Mark Paluch
2026
* @since 2.0
2127
*/
2228
public interface DefaultedRedisClusterConnection extends RedisClusterConnection, DefaultedRedisConnection {
2329

30+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
31+
@Override
32+
@Deprecated
33+
default void bgReWriteAof(RedisClusterNode node) {
34+
serverCommands().bgReWriteAof(node);
35+
}
36+
37+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
38+
@Override
39+
@Deprecated
40+
default void bgSave(RedisClusterNode node) {
41+
serverCommands().bgSave(node);
42+
}
43+
44+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
45+
@Override
46+
@Deprecated
47+
default Long lastSave(RedisClusterNode node) {
48+
return serverCommands().lastSave(node);
49+
}
50+
51+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
52+
@Override
53+
@Deprecated
54+
default void save(RedisClusterNode node) {
55+
serverCommands().save(node);
56+
}
57+
58+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
59+
@Override
60+
@Deprecated
61+
default Long dbSize(RedisClusterNode node) {
62+
return serverCommands().dbSize(node);
63+
}
64+
65+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
66+
@Override
67+
@Deprecated
68+
default void flushDb(RedisClusterNode node) {
69+
serverCommands().flushDb(node);
70+
}
71+
72+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
73+
@Override
74+
@Deprecated
75+
default void flushAll(RedisClusterNode node) {
76+
serverCommands().flushAll(node);
77+
}
78+
79+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
80+
@Override
81+
@Deprecated
82+
default Properties info(RedisClusterNode node) {
83+
return serverCommands().info(node);
84+
}
85+
86+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
87+
@Override
88+
@Deprecated
89+
default Properties info(RedisClusterNode node, String section) {
90+
return serverCommands().info(node, section);
91+
}
92+
93+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
94+
@Override
95+
@Deprecated
96+
default void shutdown(RedisClusterNode node) {
97+
serverCommands().shutdown(node);
98+
}
99+
100+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
101+
@Override
102+
@Deprecated
103+
default List<String> getConfig(RedisClusterNode node, String pattern) {
104+
return serverCommands().getConfig(node, pattern);
105+
}
106+
107+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
108+
@Override
109+
@Deprecated
110+
default void setConfig(RedisClusterNode node, String param, String value) {
111+
serverCommands().setConfig(node, param, value);
112+
}
113+
114+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
115+
@Override
116+
@Deprecated
117+
default void resetConfigStats(RedisClusterNode node) {
118+
serverCommands().resetConfigStats(node);
119+
}
120+
121+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
122+
@Override
123+
@Deprecated
124+
default Long time(RedisClusterNode node) {
125+
return serverCommands().time(node);
126+
}
127+
128+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
129+
@Override
130+
@Deprecated
131+
default List<RedisClientInfo> getClientList(RedisClusterNode node) {
132+
return serverCommands().getClientList(node);
133+
}
24134
}

0 commit comments

Comments
 (0)