diff --git a/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterConnection.java b/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterConnection.java index 6bd6fcbfa..a1fbcc416 100644 --- a/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterConnection.java +++ b/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterConnection.java @@ -38,6 +38,7 @@ import java.util.function.Function; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.springframework.beans.DirectFieldAccessor; import org.springframework.beans.PropertyAccessor; import org.springframework.dao.DataAccessException; @@ -691,6 +692,15 @@ public class JedisClusterConnection implements DefaultedRedisClusterConnection { .clusterKeySlot(JedisConverters.toString(key)).intValue()).getValue(); } + /* + * (non-Javadoc) + * @see org.springframework.data.redis.connection.RedisClusterCommands#clusterGetNodeForKey(byte[]) + */ + @Override + public RedisClusterNode clusterGetNodeForKey(byte[] key) { + return topologyProvider.getTopology().getKeyServingMasterNode(key); + } + /* * (non-Javadoc) * @see org.springframework.data.redis.connection.RedisClusterCommands#clusterGetNodeForSlot(int) @@ -757,15 +767,6 @@ public class JedisClusterConnection implements DefaultedRedisClusterConnection { return result; } - /* - * (non-Javadoc) - * @see org.springframework.data.redis.connection.RedisClusterCommands#clusterGetNodeForKey(byte[]) - */ - @Override - public RedisClusterNode clusterGetNodeForKey(byte[] key) { - return clusterGetNodeForSlot(clusterGetSlotForKey(key)); - } - /* * (non-Javadoc) * @see org.springframework.data.redis.connection.RedisClusterCommands#clusterGetClusterInfo() diff --git a/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterKeyCommands.java b/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterKeyCommands.java index 5fdbf3e8e..a68ebb20b 100644 --- a/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterKeyCommands.java +++ b/src/main/java/org/springframework/data/redis/connection/jedis/JedisClusterKeyCommands.java @@ -441,7 +441,7 @@ class JedisClusterKeyCommands implements RedisKeyCommands { return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((JedisClusterCommandCallback) client -> client.pttl(key), - connection.getTopologyProvider().getTopology().getKeyServingMasterNode(key)) + connection.clusterGetNodeForKey(key)) .getValue(); } @@ -457,7 +457,7 @@ class JedisClusterKeyCommands implements RedisKeyCommands { return connection.getClusterCommandExecutor() .executeCommandOnSingleNode( (JedisClusterCommandCallback) client -> Converters.millisecondsToTimeUnit(client.pttl(key), timeUnit), - connection.getTopologyProvider().getTopology().getKeyServingMasterNode(key)) + connection.clusterGetNodeForKey(key)) .getValue(); } @@ -472,7 +472,7 @@ class JedisClusterKeyCommands implements RedisKeyCommands { return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((JedisClusterCommandCallback) client -> client.dump(key), - connection.getTopologyProvider().getTopology().getKeyServingMasterNode(key)) + connection.clusterGetNodeForKey(key)) .getValue(); } @@ -499,7 +499,7 @@ class JedisClusterKeyCommands implements RedisKeyCommands { return JedisConverters.toString(this.connection.execute("RESTORE", key, Arrays.asList(JedisConverters.toBytes(ttlInMillis), serializedValue, JedisConverters.toBytes("REPLACE")))); - }, connection.getTopologyProvider().getTopology().getKeyServingMasterNode(key)); + }, connection.clusterGetNodeForKey(key)); } /* @@ -582,7 +582,7 @@ class JedisClusterKeyCommands implements RedisKeyCommands { return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((JedisClusterCommandCallback) client -> client.objectEncoding(key), - connection.getTopologyProvider().getTopology().getKeyServingMasterNode(key)) + connection.clusterGetNodeForKey(key)) .mapValue(JedisConverters::toEncoding); } @@ -598,7 +598,7 @@ class JedisClusterKeyCommands implements RedisKeyCommands { return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((JedisClusterCommandCallback) client -> client.objectIdletime(key), - connection.getTopologyProvider().getTopology().getKeyServingMasterNode(key)) + connection.clusterGetNodeForKey(key)) .mapValue(Converters::secondsToDuration); } @@ -614,7 +614,7 @@ class JedisClusterKeyCommands implements RedisKeyCommands { return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((JedisClusterCommandCallback) client -> client.objectRefcount(key), - connection.getTopologyProvider().getTopology().getKeyServingMasterNode(key)) + connection.clusterGetNodeForKey(key)) .getValue(); }