Skip to content

Commit 2d56eaf

Browse files
Manousos Mathioudakismp911de
Manousos Mathioudakis
authored andcommitted
Add support for CONFIG REWRITE.
Signed-off-by: Manousos Mathioudakis <[email protected]> Closes #1992 Original pull request: #2012.
1 parent 3a1fbe1 commit 2d56eaf

File tree

10 files changed

+48
-1
lines changed

10 files changed

+48
-1
lines changed

Diff for: pom.xml

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
35

46
<modelVersion>4.0.0</modelVersion>
57

Diff for: src/main/java/org/springframework/data/redis/connection/DefaultStringRedisConnection.java

+5
Original file line numberDiff line numberDiff line change
@@ -3731,6 +3731,11 @@ public void migrate(byte[] key, RedisNode target, int dbIndex, @Nullable Migrate
37313731
delegate.migrate(key, target, dbIndex, option, timeout);
37323732
}
37333733

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

Diff for: src/main/java/org/springframework/data/redis/connection/RedisServerCommands.java

+5
Original file line numberDiff line numberDiff line change
@@ -280,4 +280,9 @@ default Long time() {
280280
* @see <a href="https://redis.io/commands/migrate">Redis Documentation: MIGRATE</a>
281281
*/
282282
void migrate(byte[] key, RedisNode target, int dbIndex, @Nullable MigrateOption option, long timeout);
283+
284+
/**
285+
* Rewrites the redis.conf file.
286+
*/
287+
void rewriteConfig();
283288
}

Diff for: src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterConnection.java

+5
Original file line numberDiff line numberDiff line change
@@ -869,6 +869,11 @@ public RedisSentinelConnection getSentinelConnection() {
869869
throw new UnsupportedOperationException("Sentinel is currently not supported for JedisClusterConnection.");
870870
}
871871

872+
@Override
873+
public void rewriteConfig() {
874+
serverCommands().rewriteConfig();
875+
}
876+
872877
/**
873878
* {@link Jedis} specific {@link ClusterCommandCallback}.
874879
*

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

+6
Original file line numberDiff line numberDiff line change
@@ -520,6 +520,12 @@ public void migrate(byte[] key, RedisNode target, int dbIndex, @Nullable Migrate
520520
node);
521521
}
522522

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

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

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

+4
Original file line numberDiff line numberDiff line change
@@ -806,4 +806,8 @@ private void doWithJedis(Consumer<Jedis> callback) {
806806
}
807807
}
808808

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

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

+5
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,11 @@ public void migrate(byte[] key, RedisNode target, int dbIndex, @Nullable Migrate
317317
target.getPort(), key, dbIndex, timeoutToUse);
318318
}
319319

320+
@Override
321+
public void rewriteConfig() {
322+
connection.invokeStatus().just(Jedis::configRewrite);
323+
}
324+
320325
private boolean isPipelined() {
321326
return connection.isPipelined();
322327
}

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

+5
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,11 @@ <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+
140145
private class LettuceTransactionResultConverter<T> extends TransactionResultConverter<T> {
141146
public LettuceTransactionResultConverter(Queue<FutureResult<T>> txResults,
142147
Converter<Exception, DataAccessException> exceptionConverter) {

Diff for: src/main/java/org/springframework/data/redis/connection/lettuce/LettuceServerCommands.java

+5
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,11 @@ public void migrate(byte[] key, RedisNode target, int dbIndex, @Nullable Migrate
304304
connection.invoke().just(RedisKeyAsyncCommands::migrate, target.getHost(), target.getPort(), key, dbIndex, timeout);
305305
}
306306

307+
@Override
308+
public void rewriteConfig() {
309+
connection.invoke().just(RedisServerAsyncCommands::configRewrite);
310+
}
311+
307312
public RedisClusterCommands<byte[], byte[]> getConnection() {
308313
return connection.getConnection();
309314
}

Diff for: src/test/java/org/springframework/data/redis/connection/RedisConnectionUnitTests.java

+5
Original file line numberDiff line numberDiff line change
@@ -983,6 +983,11 @@ public void migrate(byte[] key, RedisNode target, int dbIndex, MigrateOption opt
983983
delegate.migrate(key, target, dbIndex, option, timeout);
984984
}
985985

986+
@Override
987+
public void rewriteConfig() {
988+
delegate.rewriteConfig();
989+
}
990+
986991
@Override
987992
public Boolean set(byte[] key, byte[] value, Expiration expiration, SetOption options) {
988993
return delegate.set(key, value, expiration, options);

0 commit comments

Comments
 (0)