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 cde11d992..096e250a6 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 @@ -16,7 +16,6 @@ package org.springframework.data.redis.connection.jedis; import redis.clients.jedis.BinaryJedis; -import redis.clients.jedis.BinaryJedisPubSub; import redis.clients.jedis.Client; import redis.clients.jedis.HostAndPort; import redis.clients.jedis.Jedis; @@ -38,6 +37,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 +691,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 +766,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 a1515c66f..cb4112700 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 @@ -455,7 +455,7 @@ class JedisClusterKeyCommands implements RedisKeyCommands { return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((JedisClusterCommandCallback) client -> client.pttl(key), - connection.getTopologyProvider().getTopology().getKeyServingMasterNode(key)) + connection.clusterGetNodeForKey(key)) .getValue(); } @@ -471,7 +471,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(); } @@ -486,7 +486,7 @@ class JedisClusterKeyCommands implements RedisKeyCommands { return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((JedisClusterCommandCallback) client -> client.dump(key), - connection.getTopologyProvider().getTopology().getKeyServingMasterNode(key)) + connection.clusterGetNodeForKey(key)) .getValue(); } @@ -513,7 +513,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)); } /* @@ -596,7 +596,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); } @@ -612,7 +612,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); } @@ -628,7 +628,7 @@ class JedisClusterKeyCommands implements RedisKeyCommands { return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((JedisClusterCommandCallback) client -> client.objectRefcount(key), - connection.getTopologyProvider().getTopology().getKeyServingMasterNode(key)) + connection.clusterGetNodeForKey(key)) .getValue(); }