/** * Use a {@link Cursor} to iterate over keys stored at the given {@link RedisClusterNode}. * * @param node must not be {@literal null}. * @param options must not be {@literal null}. * @return never {@literal null}. * @since 2.1 */ Cursor<byte[]> scan(RedisClusterNode node, ScanOptions options) { Assert.notNull(node, "RedisClusterNode must not be null!"); Assert.notNull(options, "Options must not be null!"); return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((LettuceClusterCommandCallback<ScanCursor<byte[]>>) client -> { return new LettuceScanCursor<byte[]>(options) { @Override protected LettuceScanIteration<byte[]> doScan(io.lettuce.core.ScanCursor cursor, ScanOptions options) { ScanArgs scanArgs = LettuceConverters.toScanArgs(options); KeyScanCursor<byte[]> keyScanCursor = client.scan(cursor, scanArgs); return new LettuceScanIteration<>(keyScanCursor, keyScanCursor.getKeys()); } }.open(); }, node).getValue(); }
/** * Use a {@link Cursor} to iterate over keys stored at the given {@link RedisClusterNode}. * * @param node must not be {@literal null}. * @param options must not be {@literal null}. * @return never {@literal null}. * @since 2.1 */ Cursor<byte[]> scan(RedisClusterNode node, ScanOptions options) { Assert.notNull(node, "RedisClusterNode must not be null!"); Assert.notNull(options, "Options must not be null!"); return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((LettuceClusterCommandCallback<ScanCursor<byte[]>>) client -> { return new LettuceScanCursor<byte[]>(options) { @Override protected LettuceScanIteration<byte[]> doScan(io.lettuce.core.ScanCursor cursor, ScanOptions options) { ScanArgs scanArgs = LettuceConverters.toScanArgs(options); KeyScanCursor<byte[]> keyScanCursor = client.scan(cursor, scanArgs); return new LettuceScanIteration<>(keyScanCursor, keyScanCursor.getKeys()); } }.open(); }, node).getValue(); }
/** * Use a {@link Cursor} to iterate over keys stored at the given {@link RedisClusterNode}. * * @param node must not be {@literal null}. * @param options must not be {@literal null}. * @return never {@literal null}. * @since 2.1 */ Cursor<byte[]> scan(RedisClusterNode node, ScanOptions options) { Assert.notNull(node, "RedisClusterNode must not be null!"); Assert.notNull(options, "Options must not be null!"); return connection.getClusterCommandExecutor() .executeCommandOnSingleNode((LettuceClusterCommandCallback<ScanCursor<byte[]>>) client -> { return new LettuceScanCursor<byte[]>(options) { @Override protected LettuceScanIteration<byte[]> doScan(io.lettuce.core.ScanCursor cursor, ScanOptions options) { ScanArgs scanArgs = LettuceConverters.toScanArgs(options); KeyScanCursor<byte[]> keyScanCursor = client.scan(cursor, scanArgs); return new LettuceScanIteration<>(keyScanCursor, keyScanCursor.getKeys()); } }.open(); }, node).getValue(); }