Refine search
@Override public void bgReWriteAof(final RedisClusterNode node) { Assert.notNull(node, "ClusterNode must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.bgReWriteAof(node); return null; }); }
/** * Executed wrapped command upon {@link RedisClusterConnection}. * * @param callback must not be {@literal null}. * @return execution result. Can be {@literal null}. */ @Nullable public <T> T execute(RedisClusterCallback<T> callback) { Assert.notNull(callback, "ClusterCallback must not be null!"); RedisClusterConnection connection = template.getConnectionFactory().getClusterConnection(); try { return callback.doInRedis(connection); } finally { connection.close(); } } }
@Override public void reshard(final RedisClusterNode source, final int slot, final RedisClusterNode target) { Assert.notNull(source, "Source node must not be null."); Assert.notNull(target, "Target node must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.clusterSetSlot(target, slot, AddSlots.IMPORTING); connection.clusterSetSlot(source, slot, AddSlots.MIGRATING); List<byte[]> keys = connection.clusterGetKeysInSlot(slot, Integer.MAX_VALUE); for (byte[] key : keys) { connection.migrate(key, source, 0, MigrateOption.COPY); } connection.clusterSetSlot(target, slot, AddSlots.NODE); return null; }); }
@Override public void forget(final RedisClusterNode node) { Assert.notNull(node, "ClusterNode must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.clusterForget(node); return null; }); }
@Override public Collection<RedisClusterNode> getSlaves(final RedisClusterNode node) { Assert.notNull(node, "ClusterNode must not be null."); return execute(connection -> connection.clusterGetSlaves(node)); }
@Override public void meet(final RedisClusterNode node) { Assert.notNull(node, "ClusterNode must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.clusterMeet(node); return null; }); }
@Override public void addSlots(final RedisClusterNode node, final int... slots) { Assert.notNull(node, "ClusterNode must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.clusterAddSlots(node, slots); return null; }); }
@Override public void reshard(final RedisClusterNode source, final int slot, final RedisClusterNode target) { Assert.notNull(source, "Source node must not be null."); Assert.notNull(target, "Target node must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.clusterSetSlot(target, slot, AddSlots.IMPORTING); connection.clusterSetSlot(source, slot, AddSlots.MIGRATING); List<byte[]> keys = connection.clusterGetKeysInSlot(slot, Integer.MAX_VALUE); for (byte[] key : keys) { connection.migrate(key, source, 0, MigrateOption.COPY); } connection.clusterSetSlot(target, slot, AddSlots.NODE); return null; }); }
@Override public void forget(final RedisClusterNode node) { Assert.notNull(node, "ClusterNode must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.clusterForget(node); return null; }); }
@Override public Collection<RedisClusterNode> getSlaves(final RedisClusterNode node) { Assert.notNull(node, "ClusterNode must not be null."); return execute(connection -> connection.clusterGetSlaves(node)); }
@Override public void meet(final RedisClusterNode node) { Assert.notNull(node, "ClusterNode must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.clusterMeet(node); return null; }); }
@Override public void addSlots(final RedisClusterNode node, final int... slots) { Assert.notNull(node, "ClusterNode must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.clusterAddSlots(node, slots); return null; }); }
@Override public void reshard(final RedisClusterNode source, final int slot, final RedisClusterNode target) { Assert.notNull(source, "Source node must not be null."); Assert.notNull(target, "Target node must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.clusterSetSlot(target, slot, AddSlots.IMPORTING); connection.clusterSetSlot(source, slot, AddSlots.MIGRATING); List<byte[]> keys = connection.clusterGetKeysInSlot(slot, Integer.MAX_VALUE); for (byte[] key : keys) { connection.migrate(key, source, 0, MigrateOption.COPY); } connection.clusterSetSlot(target, slot, AddSlots.NODE); return null; }); }
@Override public void forget(final RedisClusterNode node) { Assert.notNull(node, "ClusterNode must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.clusterForget(node); return null; }); }
@Override public Collection<RedisClusterNode> getSlaves(final RedisClusterNode node) { Assert.notNull(node, "ClusterNode must not be null."); return execute(connection -> connection.clusterGetSlaves(node)); }
@Override public void bgReWriteAof(final RedisClusterNode node) { Assert.notNull(node, "ClusterNode must not be null."); execute((RedisClusterCallback<Void>) connection -> { connection.bgReWriteAof(node); return null; }); }