diff --git a/src/main/java/org/redisson/api/RBitSetReactive.java b/src/main/java/org/redisson/api/RBitSetReactive.java index 461aab11f..ea0caadb4 100644 --- a/src/main/java/org/redisson/api/RBitSetReactive.java +++ b/src/main/java/org/redisson/api/RBitSetReactive.java @@ -30,29 +30,29 @@ public interface RBitSetReactive extends RExpirableReactive { Publisher toByteArray(); - Publisher length(); + Publisher length(); - Publisher set(int fromIndex, int toIndex, boolean value); + Publisher set(long fromIndex, long toIndex, boolean value); - Publisher clear(int fromIndex, int toIndex); + Publisher clear(long fromIndex, long toIndex); Publisher set(BitSet bs); Publisher not(); - Publisher set(int fromIndex, int toIndex); + Publisher set(long fromIndex, long toIndex); Publisher size(); - Publisher get(int bitIndex); + Publisher get(long bitIndex); - Publisher set(int bitIndex); + Publisher set(long bitIndex); - Publisher set(int bitIndex, boolean value); + Publisher set(long bitIndex, boolean value); - Publisher cardinality(); + Publisher cardinality(); - Publisher clear(int bitIndex); + Publisher clear(long bitIndex); Publisher clear(); diff --git a/src/main/java/org/redisson/reactive/RedissonBitSetReactive.java b/src/main/java/org/redisson/reactive/RedissonBitSetReactive.java index 2bf7ec879..ad22749d9 100644 --- a/src/main/java/org/redisson/reactive/RedissonBitSetReactive.java +++ b/src/main/java/org/redisson/reactive/RedissonBitSetReactive.java @@ -37,11 +37,11 @@ public class RedissonBitSetReactive extends RedissonExpirableReactive implements super(connectionManager, name); } - public Publisher get(int bitIndex) { + public Publisher get(long bitIndex) { return commandExecutor.readReactive(getName(), codec, RedisCommands.GETBIT, getName(), bitIndex); } - public Publisher set(int bitIndex, boolean value) { + public Publisher set(long bitIndex, boolean value) { return commandExecutor.writeReactive(getName(), codec, RedisCommands.SETBIT_VOID, getName(), bitIndex, value ? 1 : 0); } @@ -75,8 +75,8 @@ public class RedissonBitSetReactive extends RedissonExpirableReactive implements } @Override - public Publisher length() { - return commandExecutor.evalReadReactive(getName(), codec, RedisCommands.EVAL_INTEGER, + public Publisher length() { + return commandExecutor.evalReadReactive(getName(), codec, RedisCommands.EVAL_LONG, "local fromBit = redis.call('bitpos', KEYS[1], 1, -1);" + "local toBit = 8*(fromBit/8 + 1) - fromBit % 8;" + "for i = toBit, fromBit, -1 do " @@ -89,7 +89,7 @@ public class RedissonBitSetReactive extends RedissonExpirableReactive implements } @Override - public Publisher set(int fromIndex, int toIndex, boolean value) { + public Publisher set(long fromIndex, long toIndex, boolean value) { if (value) { return set(fromIndex, toIndex); } @@ -97,9 +97,9 @@ public class RedissonBitSetReactive extends RedissonExpirableReactive implements } @Override - public Publisher clear(int fromIndex, int toIndex) { + public Publisher clear(long fromIndex, long toIndex) { CommandBatchService executorService = new CommandBatchService(commandExecutor.getConnectionManager()); - for (int i = fromIndex; i < toIndex; i++) { + for (long i = fromIndex; i < toIndex; i++) { executorService.writeAsync(getName(), codec, RedisCommands.SETBIT_VOID, getName(), i, 0); } return new NettyFuturePublisher(executorService.executeAsyncVoid()); @@ -116,9 +116,9 @@ public class RedissonBitSetReactive extends RedissonExpirableReactive implements } @Override - public Publisher set(int fromIndex, int toIndex) { + public Publisher set(long fromIndex, long toIndex) { CommandBatchService executorService = new CommandBatchService(commandExecutor.getConnectionManager()); - for (int i = fromIndex; i < toIndex; i++) { + for (long i = fromIndex; i < toIndex; i++) { executorService.writeAsync(getName(), codec, RedisCommands.SETBIT_VOID, getName(), i, 1); } return new NettyFuturePublisher(executorService.executeAsyncVoid()); @@ -130,17 +130,17 @@ public class RedissonBitSetReactive extends RedissonExpirableReactive implements } @Override - public Publisher set(int bitIndex) { + public Publisher set(long bitIndex) { return set(bitIndex, true); } @Override - public Publisher cardinality() { + public Publisher cardinality() { return commandExecutor.readReactive(getName(), codec, RedisCommands.BITCOUNT, getName()); } @Override - public Publisher clear(int bitIndex) { + public Publisher clear(long bitIndex) { return set(bitIndex, false); }