diff --git a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java index 56425310a..053a10828 100644 --- a/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java +++ b/redisson/src/main/java/org/redisson/cluster/ClusterConnectionManager.java @@ -699,6 +699,13 @@ public class ClusterConnectionManager extends MasterSlaveConnectionManager { if (!removedSlots.isEmpty()) { log.info("{} slots removed from {}", removedSlots.cardinality(), currentPartition.getMasterAddress()); } + + if (!addedSlots.isEmpty() || !removedSlots.isEmpty()) { + // https://github.com/redisson/redisson/issues/3695, slotRanges not update when slots of node changed. + Set slotRanges = currentPartition.getSlotRanges(); + slotRanges.clear(); + slotRanges.addAll(newPartition.getSlotRanges()); + } break; } }