Redis Cluster support mget / mset and other multi command.
Use redis@3.2.12 for test.
Use jedis@3.3.0 for test.
git clone https://github.com/RedisOptimal/redis-cluster-support-mget.git
git submodule update --init
00-REDIS-CLUSTER-MULTI-COMMAND
cd redis@3.2
# Redis cluster mget/mset required patch. Must be apply.
git apply ../00-REDIS-CLUSTER-MULTI-COMMAND.patch
# Fix redis lower version(3.2) can't build in Apple M1 Silicon Chip.
# https://github.com/redis/redis/issues/10420
git apply ../03-REIDS-APPLE-SILCON-CHIP.patch
01-JEDIS-JAVA-VERSION-UPGRADE-TO-8
cd jedis@3
# Required patch, upgrade JDK VERSION.
git apply ../01-JEDIS-JAVA-VERSION-UPGRADE-TO-8.patch
# Required patch, let jedis support mget command.
git apply ../02-JEDIS-SUPPORT-MGET-SERIES.patch
# Let jedis support mset command. Need patch 01 and 02 first.
git apply ../04-JEDIS-SUPPORT-MSET-SERIES.patch
# Test case, test and improve it if you like.
git apply ../05-JEDIS-MGET-MSET-TEST-CASES.patch
Using multi-keys command in redis cluster will meet error CLUSTER_REDIR_CROSS_SLOT
- if (slot != thisslot) {
+ if (slot != thisslot && n != server.cluster->slots[thisslot]) {
Change the server and client to support slot from same node.