From 7a78fa0fc843377ee40161383f93db9c3f95f36e Mon Sep 17 00:00:00 2001 From: Petya Slavova Date: Fri, 14 Nov 2025 13:44:36 +0200 Subject: [PATCH 1/2] Updating the list with commands allowed to be sent to the read-only cluster replica nodes --- redis/commands/cluster.py | 87 +++++++++++++++++++++++++++++++++------ 1 file changed, 75 insertions(+), 12 deletions(-) diff --git a/redis/commands/cluster.py b/redis/commands/cluster.py index 81883b67b4..0ea3170ce3 100644 --- a/redis/commands/cluster.py +++ b/redis/commands/cluster.py @@ -51,20 +51,39 @@ # https://redis.io/commands READ_COMMANDS = frozenset( [ + # Bit Operations "BITCOUNT", + "BITFIELD_RO", "BITPOS", + # Scripting "EVAL_RO", "EVALSHA_RO", - "EXISTS", - "GEODIST", - "GEOHASH", - "GEOPOS", - "GEORADIUS", - "GEORADIUSBYMEMBER", + "FCALL_RO", + # Key Operations + "DBSIZE", "DIGEST", + "DUMP", + "EXISTS", + "EXPIRETIME", + "PEXPIRETIME", + "KEYS", + "SCAN", + "PTTL", + "RANDOMKEY", + "TTL", + "TYPE", + # String Operations "GET", "GETBIT", "GETRANGE", + "MGET", + "STRLEN", + # Geo Operations + "GEODIST", + "GEOHASH", + "GEOPOS", + "GEOSEARCH", + # Hash Operations "HEXISTS", "HGET", "HGETALL", @@ -73,26 +92,70 @@ "HMGET", "HSTRLEN", "HVALS", - "KEYS", + "HRANDFIELD", + "HEXPIRETIME", + "HPEXPIRETIME", + "HTTL", + "HPTTL", + "HSCAN", + # List Operations "LINDEX", + "LPOS", "LLEN", "LRANGE", - "MGET", - "PTTL", - "RANDOMKEY", + "LCS", + # Set Operations "SCARD", "SDIFF", "SINTER", + "SINTERCARD", "SISMEMBER", + "SMISMEMBER", "SMEMBERS", "SRANDMEMBER", - "STRLEN", "SUNION", - "TTL", + "SSCAN", + # Sorted Set Operations "ZCARD", "ZCOUNT", + "ZDIFF", + "ZINTER", + "ZINTERCARD", + "ZLEXCOUNT", + "ZMSCORE", + "ZRANDMEMBER", "ZRANGE", + "ZRANGEBYLEX", + "ZRANGEBYSCORE", + "ZRANK", + "ZREVRANGE", + "ZREVRANGEBYLEX", + "ZREVRANGEBYSCORE", + "ZREVRANK", + "ZSCAN", "ZSCORE", + "ZUNION", + # Stream Operations + "XLEN", + "XPENDING", + "XRANGE", + "XREAD", + "XREVRANGE", + # JSON Module + "JSON.ARRINDEX", + "JSON.ARRLEN", + "JSON.GET", + "JSON.MGET", + "JSON.OBJKEYS", + "JSON.OBJLEN", + "JSON.RESP", + "JSON.STRLEN", + "JSON.TYPE", + # RediSearch Module + "FT.EXPLAIN", + "FT.INFO", + "FT.PROFILE", + "FT.SEARCH", ] ) From 542eef43ae66777db6f57f734b4415abe5f461ee Mon Sep 17 00:00:00 2001 From: Petya Slavova Date: Mon, 17 Nov 2025 11:25:02 +0200 Subject: [PATCH 2/2] Applying review comment --- redis/commands/cluster.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/redis/commands/cluster.py b/redis/commands/cluster.py index 0ea3170ce3..3918611cef 100644 --- a/redis/commands/cluster.py +++ b/redis/commands/cluster.py @@ -78,6 +78,7 @@ "GETRANGE", "MGET", "STRLEN", + "LCS", # Geo Operations "GEODIST", "GEOHASH", @@ -103,7 +104,6 @@ "LPOS", "LLEN", "LRANGE", - "LCS", # Set Operations "SCARD", "SDIFF",