Skip to content

Commit 0f6a152

Browse files
committed
Polishing.
Reorder methods. Move rewriteConfig directly implemented on connection to DefaultedRedisConnection respective DefaultedRedisClusterConnection. Add overload to run config rewrite on individual cluster nodes. Add tests. Add since tags and update Javadoc. See #1992 Original pull request: #2012.
1 parent 2d56eaf commit 0f6a152

13 files changed

+134
-34
lines changed

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

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,15 @@ public void resetConfigStats() {
878878
delegate.resetConfigStats();
879879
}
880880

881+
/*
882+
* (non-Javadoc)
883+
* @see org.springframework.data.redis.connection.RedisServerCommands#rewriteConfig()
884+
*/
885+
@Override
886+
public void rewriteConfig() {
887+
delegate.rewriteConfig();
888+
}
889+
881890
/*
882891
* (non-Javadoc)
883892
* @see org.springframework.data.redis.connection.RedisListCommands#rPop(byte[])
@@ -3731,11 +3740,6 @@ public void migrate(byte[] key, RedisNode target, int dbIndex, @Nullable Migrate
37313740
delegate.migrate(key, target, dbIndex, option, timeout);
37323741
}
37333742

3734-
@Override
3735-
public void rewriteConfig() {
3736-
delegate.rewriteConfig();
3737-
}
3738-
37393743
/*
37403744
* (non-Javadoc)
37413745
* @see org.springframework.data.redis.connection.StringRedisConnection#xAck(java.lang.String, java.lang.String, RecordId[])

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,13 @@ default void resetConfigStats(RedisClusterNode node) {
122122
serverCommands().resetConfigStats(node);
123123
}
124124

125+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
126+
@Override
127+
@Deprecated
128+
default void rewriteConfig(RedisClusterNode node) {
129+
serverCommands().rewriteConfig(node);
130+
}
131+
125132
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
126133
@Override
127134
@Deprecated

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1430,6 +1430,13 @@ default void resetConfigStats() {
14301430
serverCommands().resetConfigStats();
14311431
}
14321432

1433+
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
1434+
@Override
1435+
@Deprecated
1436+
default void rewriteConfig() {
1437+
serverCommands().rewriteConfig();
1438+
}
1439+
14331440
/** @deprecated in favor of {@link RedisConnection#serverCommands()}. */
14341441
@Override
14351442
@Deprecated

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

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,13 @@ public interface RedisClusterServerCommands extends RedisServerCommands {
114114
*/
115115
void resetConfigStats(RedisClusterNode node);
116116

117+
/**
118+
* @param node must not be {@literal null}.
119+
* @see RedisServerCommands#rewriteConfig()
120+
* @since 2.5
121+
*/
122+
void rewriteConfig(RedisClusterNode node);
123+
117124
/**
118125
* @param node must not be {@literal null}.
119126
* @return

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

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,14 @@ default void bgWriteAof() {
174174
*/
175175
void resetConfigStats();
176176

177+
/**
178+
* Rewrites the {@code redis.conf} file.
179+
*
180+
* @since 2.5
181+
* @see <a href="https://redis.io/commands/config-rewrite">Redis Documentation: CONFIG REWRITE</a>
182+
*/
183+
void rewriteConfig();
184+
177185
/**
178186
* Request server timestamp using {@code TIME} command in {@link TimeUnit#MILLISECONDS}.
179187
*
@@ -281,8 +289,4 @@ default Long time() {
281289
*/
282290
void migrate(byte[] key, RedisNode target, int dbIndex, @Nullable MigrateOption option, long timeout);
283291

284-
/**
285-
* Rewrites the redis.conf file.
286-
*/
287-
void rewriteConfig();
288292
}

src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterServerCommands.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,16 @@ public void resetConfigStats() {
381381
.executeCommandOnAllNodes((JedisClusterCommandCallback<String>) BinaryJedis::configResetStat);
382382
}
383383

384+
/*
385+
* (non-Javadoc)
386+
* @see org.springframework.data.redis.connection.RedisServerCommands#rewriteConfig()
387+
*/
388+
@Override
389+
public void rewriteConfig() {
390+
connection.getClusterCommandExecutor()
391+
.executeCommandOnAllNodes((JedisClusterCommandCallback<String>) BinaryJedis::configRewrite);
392+
}
393+
384394
/*
385395
* (non-Javadoc)
386396
* @see org.springframework.data.redis.connection.RedisClusterServerCommands#resetConfigStats(org.springframework.data.redis.connection.RedisClusterNode)
@@ -390,6 +400,15 @@ public void resetConfigStats(RedisClusterNode node) {
390400
executeCommandOnSingleNode(BinaryJedis::configResetStat, node);
391401
}
392402

403+
/*
404+
* (non-Javadoc)
405+
* @see org.springframework.data.redis.connection.RedisClusterServerCommands#rewriteConfig(org.springframework.data.redis.connection.RedisClusterNode)
406+
*/
407+
@Override
408+
public void rewriteConfig(RedisClusterNode node) {
409+
executeCommandOnSingleNode(BinaryJedis::configRewrite, node);
410+
}
411+
393412
/*
394413
* (non-Javadoc)
395414
* @see org.springframework.data.redis.connection.RedisServerCommands#time(TimeUnit)
@@ -520,12 +539,6 @@ public void migrate(byte[] key, RedisNode target, int dbIndex, @Nullable Migrate
520539
node);
521540
}
522541

523-
@Override
524-
public void rewriteConfig() {
525-
connection.getClusterCommandExecutor()
526-
.executeCommandOnAllNodes((JedisClusterCommandCallback<String>) client -> client.configRewrite());
527-
}
528-
529542
private Long convertListOfStringToTime(List<String> serverTimeInformation, TimeUnit timeUnit) {
530543

531544
Assert.notEmpty(serverTimeInformation, "Received invalid result from server. Expected 2 items in collection.");

src/main/java/org/springframework/data/redis/connection/jedis/JedisConnection.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -806,8 +806,4 @@ private void doWithJedis(Consumer<Jedis> callback) {
806806
}
807807
}
808808

809-
@Override
810-
public void rewriteConfig() {
811-
serverCommands().rewriteConfig();
812-
}
813809
}

src/main/java/org/springframework/data/redis/connection/jedis/JedisServerCommands.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,15 @@ public void resetConfigStats() {
189189
connection.invokeStatus().just(BinaryJedis::configResetStat, MultiKeyPipelineBase::configResetStat);
190190
}
191191

192+
/*
193+
* (non-Javadoc)
194+
* @see org.springframework.data.redis.connection.RedisServerCommands#resetConfigStats()
195+
*/
196+
@Override
197+
public void rewriteConfig() {
198+
connection.invokeStatus().just(Jedis::configRewrite);
199+
}
200+
192201
/*
193202
* (non-Javadoc)
194203
* @see org.springframework.data.redis.connection.RedisServerCommands#time(TimeUnit)
@@ -317,11 +326,6 @@ public void migrate(byte[] key, RedisNode target, int dbIndex, @Nullable Migrate
317326
target.getPort(), key, dbIndex, timeoutToUse);
318327
}
319328

320-
@Override
321-
public void rewriteConfig() {
322-
connection.invokeStatus().just(Jedis::configRewrite);
323-
}
324-
325329
private boolean isPipelined() {
326330
return connection.isPipelined();
327331
}

src/main/java/org/springframework/data/redis/connection/lettuce/LettuceClusterServerCommands.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,24 @@ public void resetConfigStats(RedisClusterNode node) {
307307
executeCommandOnSingleNode(RedisServerCommands::configResetstat, node);
308308
}
309309

310+
/*
311+
* (non-Javadoc)
312+
* @see org.springframework.data.redis.connection.lettuce.LettuceServerCommands#rewriteConfig()
313+
*/
314+
@Override
315+
public void rewriteConfig() {
316+
executeCommandOnAllNodes(RedisServerCommands::configRewrite);
317+
}
318+
319+
/*
320+
* (non-Javadoc)
321+
* @see org.springframework.data.redis.connection.RedisClusterServerCommands#rewriteConfig(org.springframework.data.redis.connection.RedisClusterNode)
322+
*/
323+
@Override
324+
public void rewriteConfig(RedisClusterNode node) {
325+
executeCommandOnSingleNode(RedisServerCommands::configRewrite, node);
326+
}
327+
310328
/*
311329
* (non-Javadoc)
312330
* @see org.springframework.data.redis.connection.RedisClusterServerCommands#time(org.springframework.data.redis.connection.RedisClusterNode)

src/main/java/org/springframework/data/redis/connection/lettuce/LettuceConnection.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -137,11 +137,6 @@ <T, R> LettuceResult<T, R> newLettuceStatusResult(Future<T> resultHolder) {
137137
return LettuceResultBuilder.<T, R> forResponse(resultHolder).buildStatusResult();
138138
}
139139

140-
@Override
141-
public void rewriteConfig() {
142-
serverCommands().rewriteConfig();
143-
}
144-
145140
private class LettuceTransactionResultConverter<T> extends TransactionResultConverter<T> {
146141
public LettuceTransactionResultConverter(Queue<FutureResult<T>> txResults,
147142
Converter<Exception, DataAccessException> exceptionConverter) {

0 commit comments

Comments
 (0)