From dedc33448af59aaeab27223cf31b3a1bb1eb42d5 Mon Sep 17 00:00:00 2001 From: Nikita Koksharov Date: Tue, 29 Aug 2023 08:48:47 +0300 Subject: [PATCH] Feature - RedisNode.size() method added --- .../java/org/redisson/api/redisnode/RedisNode.java | 7 +++++++ .../org/redisson/api/redisnode/RedisNodeAsync.java | 7 +++++++ .../main/java/org/redisson/redisnode/RedisNode.java | 11 +++++++++++ .../org/redisson/redisnode/SentinelRedisNode.java | 11 +++++++++++ 4 files changed, 36 insertions(+) diff --git a/redisson/src/main/java/org/redisson/api/redisnode/RedisNode.java b/redisson/src/main/java/org/redisson/api/redisnode/RedisNode.java index 569089a53..8a2f3fb89 100644 --- a/redisson/src/main/java/org/redisson/api/redisnode/RedisNode.java +++ b/redisson/src/main/java/org/redisson/api/redisnode/RedisNode.java @@ -131,4 +131,11 @@ public interface RedisNode { */ void bgRewriteAOF(); + /** + * Returns keys amount stored in this Redis node. + * + * @return keys amount + */ + long size(); + } diff --git a/redisson/src/main/java/org/redisson/api/redisnode/RedisNodeAsync.java b/redisson/src/main/java/org/redisson/api/redisnode/RedisNodeAsync.java index 85312fc14..de89aa46c 100644 --- a/redisson/src/main/java/org/redisson/api/redisnode/RedisNodeAsync.java +++ b/redisson/src/main/java/org/redisson/api/redisnode/RedisNodeAsync.java @@ -123,4 +123,11 @@ public interface RedisNodeAsync { */ RFuture bgRewriteAOFAsync(); + /** + * Returns keys amount stored in this Redis node. + * + * @return keys amount + */ + RFuture sizeAsync(); + } diff --git a/redisson/src/main/java/org/redisson/redisnode/RedisNode.java b/redisson/src/main/java/org/redisson/redisnode/RedisNode.java index 1a3983cda..174b11c63 100644 --- a/redisson/src/main/java/org/redisson/redisnode/RedisNode.java +++ b/redisson/src/main/java/org/redisson/redisnode/RedisNode.java @@ -389,4 +389,15 @@ public class RedisNode implements RedisClusterMaster, RedisClusterSlave, RedisMa public RFuture bgRewriteAOFAsync() { return commandExecutor.writeAsync(client, StringCodec.INSTANCE, RedisCommands.BGREWRITEAOF); } + + @Override + public long size() { + return commandExecutor.get(sizeAsync()); + } + + @Override + public RFuture sizeAsync() { + return commandExecutor.writeAsync(client, StringCodec.INSTANCE, RedisCommands.DBSIZE); + } + } diff --git a/redisson/src/main/java/org/redisson/redisnode/SentinelRedisNode.java b/redisson/src/main/java/org/redisson/redisnode/SentinelRedisNode.java index 0045165e7..ccf1970d9 100644 --- a/redisson/src/main/java/org/redisson/redisnode/SentinelRedisNode.java +++ b/redisson/src/main/java/org/redisson/redisnode/SentinelRedisNode.java @@ -320,4 +320,15 @@ public class SentinelRedisNode implements RedisSentinel, RedisSentinelAsync { public RFuture bgRewriteAOFAsync() { return executeAsync(null, StringCodec.INSTANCE, -1, RedisCommands.BGREWRITEAOF); } + + @Override + public long size() { + return commandAsyncService.get(sizeAsync()); + } + + @Override + public RFuture sizeAsync() { + return executeAsync(null, StringCodec.INSTANCE, -1, RedisCommands.DBSIZE); + } + }