Tair (Redis OSS-compatible) instances running cluster architecture or read/write splitting architecture have a different set of command restrictions compared to standard architecture instances. Some commands are disabled, and multi-key commands cannot access keys across different slots. Review these limitations before migrating workloads or writing application code.
Command limitations for cluster architecture
Cluster instances are compatible with multiple Redis versions. For command support by version, see Redis Open-Source Edition command support and Tair (Enterprise Edition) command support and limitations.
Cluster architecture supports two connection modes: direct connection mode and proxy mode. The limitations differ between the two.
Direct connection mode
SELECT: Supported, but only for cluster initialization. If your client does not support SELECT during cluster initialization, this command is unavailable.
SWAPDB: Supported only on instances compatible with Redis 7.0.
Multi-key commands: All keys must be in the same slot. Use hash tags to group keys into the same slot.
Transactions: All keys in a transaction must be in the same slot, consistent with open-source Redis Cluster behavior.
Proxy mode
Proxy mode adds a middle layer that hides the cluster topology, which improves client compatibility. It inherits all direct connection mode limitations and adds the following:
CLIENT INFO and CLIENT ID are not supported.
CLIENT KILL supports two formats: CLIENT KILL <ip:port> and CLIENT KILL ADDR <ip:port>.
DEL and EXISTS support cross-slot multi-key operations.
SCAN 0 starts from the first data shard and traverses each shard sequentially, moving to the next shard only after the current shard is fully scanned. To scan a specific shard, use the ISCAN command.
Cluster instances in proxy mode support Alibaba Cloud self-developed proxy commands for management and operations. See Alibaba Cloud self-developed proxy commands.
CLIENT LIST output differences
When you run CLIENT LIST, the proxy returns connection information for all connections to the proxy node. The output differs from native Redis as follows:
| Field | Behavior |
|---|
id, age, idle, addr, fd, name, db, multi, omem, cmd | Same meaning as native Redis |
sub, psub | Not differentiated on the proxy node; both are set to 1 or 0 |
qbuf, qbuf-free, obl, oll | No specific meaning |
Transaction behavior in proxy mode
Transaction behavior depends on the slot distribution of the keys involved:
| Scenario | Result |
|---|
| All keys in the same slot | Transaction runs normally; full transaction semantics apply |
| Keys in different slots, but each individual command's keys in the same slot | Transaction runs normally; semantics are guaranteed per command but not across commands with keys in different slots |
| A single command with keys in different slots | The command cannot be executed |
| Keyless commands | Some are not supported inside transactions; see the command support tables below |
In addition, Redis Cluster has some limitations on using Lua scripts. Tair (Redis OSS-compatible) cluster architecture has additional limitations. For more information, see Special limitations for cluster architecture.
Command support table for proxy mode
The following tables apply to both cluster architecture in proxy mode and read/write splitting architecture.
Legend:
| Symbol | Meaning |
|---|
| ✔️ | Supported. For multi-key commands, cross-slot operations are allowed. |
| ⭕️ | Supported with limitations. All keys must be in the same slot (use hash tags). |
| ❌ | Not supported. |
| Note ① | Returns OK or an empty result only; not actually executed. Included for compatibility with some client frameworks. |
| Note ② | Processed and returned directly by the proxy, regardless of the Redis version. |
Bitmap
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| BITCOUNT | ✔️ | ✔️ | ✔️ | ✔️ |
| BITFIELD | ✔️ | ✔️ | ✔️ | ✔️ |
| BITFIELD_RO | ❌ | ❌ | ❌ | ❌ |
| BITOP | ⭕️ | ⭕️ | ✔️ | ✔️ |
| BITPOS | ✔️ | ✔️ | ✔️ | ✔️ |
| GETBIT | ✔️ | ✔️ | ✔️ | ✔️ |
| SETBIT | ✔️ | ✔️ | ✔️ | ✔️ |
Cluster management
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| CLUSTER ADDSLOTS ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER ADDSLOTSRANGE | ❌ | ❌ | ❌ | ❌ |
| CLUSTER BUMPEPOCH | ❌ | ❌ | ❌ | ❌ |
| CLUSTER COUNT-FAILURE-REPORTS ② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER COUNTKEYSINSLOT ② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER DELSLOTS ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER DELSLOTSRANGE | ❌ | ❌ | ❌ | ❌ |
| CLUSTER FAILOVER ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER FLUSHSLOTS | ❌ | ❌ | ❌ | ❌ |
| CLUSTER FORGET ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER GETKEYSINSLOT ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER INFO ② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER KEYSLOT ② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER LINKS | ❌ | ❌ | ❌ | ❌ |
| CLUSTER MEET ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER MYID | ❌ | ❌ | ❌ | ❌ |
| CLUSTER NODES ② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER REPLICAS | ❌ | ❌ | ❌ | ❌ |
| CLUSTER REPLICATE ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER RESET ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER SAVECONFIG ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER SET-CONFIG-EPOCH ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER SETSLOT ①② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER SHARDS | ❌ | ❌ | ❌ | ❌ |
| CLUSTER SLAVES ② | ✔️ | ❌ | ✔️ | ❌ |
| CLUSTER SLOTS ② | ✔️ | ❌ | ✔️ | ❌ |
| READONLY ①② | ✔️ | ❌ | ✔️ | ❌ |
| READWRITE ①② | ✔️ | ❌ | ✔️ | ❌ |
Connection management
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| AUTH | ✔️ | ❌ | ✔️ | ✔️ |
| CLIENT CACHING | ❌ | ❌ | ❌ | ❌ |
| CLIENT GETNAME ② | ✔️ | ❌ | ✔️ | ❌ |
| CLIENT GETREDIR | ❌ | ❌ | ❌ | ❌ |
| CLIENT ID | ❌ | ❌ | ❌ | ❌ |
| CLIENT INFO | ❌ | ❌ | ❌ | ❌ |
| CLIENT KILL ② | ✔️ | ❌ | ✔️ | ❌ |
| CLIENT LIST ② | ✔️ | ❌ | ✔️ | ❌ |
| CLIENT NO-EVICT | ❌ | ❌ | ❌ | ❌ |
| CLIENT PAUSE | ❌ | ❌ | ❌ | ❌ |
| CLIENT REPLY | ❌ | ❌ | ❌ | ❌ |
| CLIENT SETNAME ② | ✔️ | ❌ | ✔️ | ❌ |
| CLIENT TRACKING | ❌ | ❌ | ❌ | ❌ |
| CLIENT TRACKINGINFO | ❌ | ❌ | ❌ | ❌ |
| CLIENT UNBLOCK | ❌ | ❌ | ❌ | ❌ |
| CLIENT UNPAUSE | ❌ | ❌ | ❌ | ❌ |
| ECHO | ✔️ | ❌ | ✔️ | ✔️ |
| HELLO | ✔️ (with limitations) | ✔️ (with limitations) | ✔️ (with limitations) | ✔️ (with limitations) |
| PING ② | ✔️ | ❌ | ✔️ | ✔️ |
| QUIT ② | ✔️ | ✔️ | ✔️ | ✔️ |
| RESET | ❌ | ❌ | ❌ | ❌ |
| SELECT | ✔️ | ✔️ | ✔️ | ✔️ |
HELLO is disabled by default. To enable it, upgrade the proxy minor version to 7.0.9 or later and enable the hello_enabled parameter.
Generic
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| COPY | ⭕️ | ⭕️ | ✔️ | ✔️ |
| DEL | ✔️ | ⭕️ | ✔️ | ✔️ |
| DUMP | ✔️ | ✔️ | ✔️ | ✔️ |
| EXISTS | ✔️ | ⭕️ | ✔️ | ✔️ |
| EXPIRE | ✔️ | ✔️ | ✔️ | ✔️ |
| EXPIREAT | ✔️ | ✔️ | ✔️ | ✔️ |
| EXPIRETIME | ✔️ | ✔️ | ✔️ | ✔️ |
| KEYS | ✔️ | ❌ | ✔️ | ✔️ |
| MIGRATE | ❌ | ❌ | ❌ | ❌ |
| MOVE | ✔️ | ✔️ | ✔️ | ✔️ |
| OBJECT | ✔️ | ✔️ | ✔️ | ✔️ |
| OBJECT HELP | ✔️ | ✔️ | ✔️ | ✔️ |
| PERSIST | ✔️ | ✔️ | ✔️ | ✔️ |
| PEXPIRE | ✔️ | ✔️ | ✔️ | ✔️ |
| PEXPIREAT | ✔️ | ✔️ | ✔️ | ✔️ |
| PEXPIRETIME | ✔️ | ✔️ | ✔️ | ✔️ |
| PTTL | ✔️ | ✔️ | ✔️ | ✔️ |
| RANDOMKEY | ✔️ | ❌ | ✔️ | ✔️ |
| RENAME | ⭕️ | ⭕️ | ✔️ | ✔️ |
| RENAMENX | ⭕️ | ⭕️ | ✔️ | ✔️ |
| RESTORE | ✔️ | ✔️ | ✔️ | ✔️ |
| SCAN | ✔️ | ❌ | ✔️ | ✔️ |
| SORT | ⭕️ | ⭕️ | ✔️ | ✔️ |
| SORT_RO | ⭕️ | ⭕️ | ✔️ | ✔️ |
| TOUCH | ✔️ | ⭕️ | ✔️ | ✔️ |
| TTL | ✔️ | ✔️ | ✔️ | ✔️ |
| TYPE | ✔️ | ✔️ | ✔️ | ✔️ |
| UNLINK | ✔️ | ⭕️ | ✔️ | ✔️ |
| WAIT | ✔️ | ❌ | ✔️ | ✔️ |
Geospatial indices
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| GEOADD | ✔️ | ✔️ | ✔️ | ✔️ |
| GEODIST | ✔️ | ✔️ | ✔️ | ✔️ |
| GEOHASH | ✔️ | ✔️ | ✔️ | ✔️ |
| GEOPOS | ✔️ | ✔️ | ✔️ | ✔️ |
| GEORADIUS | ⭕️ | ⭕️ | ✔️ | ✔️ |
| GEORADIUSBYMEMBER | ⭕️ | ⭕️ | ✔️ | ✔️ |
| GEOSEARCH | ✔️ | ✔️ | ✔️ | ✔️ |
| GEOSEARCHSTORE | ⭕️ | ⭕️ | ✔️ | ✔️ |
Hash
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| HDEL | ✔️ | ✔️ | ✔️ | ✔️ |
| HEXISTS | ✔️ | ✔️ | ✔️ | ✔️ |
| HGET | ✔️ | ✔️ | ✔️ | ✔️ |
| HGETALL | ✔️ | ✔️ | ✔️ | ✔️ |
| HINCRBY | ✔️ | ✔️ | ✔️ | ✔️ |
| HINCRBYFLOAT | ✔️ | ✔️ | ✔️ | ✔️ |
| HKEYS | ✔️ | ✔️ | ✔️ | ✔️ |
| HLEN | ✔️ | ✔️ | ✔️ | ✔️ |
| HMGET | ✔️ | ✔️ | ✔️ | ✔️ |
| HMSET | ✔️ | ✔️ | ✔️ | ✔️ |
| HRANDFIELD | ✔️ | ✔️ | ✔️ | ✔️ |
| HSCAN | ✔️ | ✔️ | ✔️ | ✔️ |
| HSET | ✔️ | ✔️ | ✔️ | ✔️ |
| HSETNX | ✔️ | ✔️ | ✔️ | ✔️ |
| HSTRLEN | ✔️ | ✔️ | ✔️ | ✔️ |
| HVALS | ✔️ | ✔️ | ✔️ | ✔️ |
HyperLogLog
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| PFADD | ✔️ | ✔️ | ✔️ | ✔️ |
| PFCOUNT | ⭕️ | ⭕️ | ✔️ | ✔️ |
| PFMERGE | ⭕️ | ⭕️ | ✔️ | ✔️ |
Lists
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| BLPOP | ⭕️ | ⭕️ | ✔️ | ✔️ |
| BLMOVE | ⭕️ | ⭕️ | ✔️ | ✔️ |
| BLMPOP | ⭕️ | ⭕️ | ✔️ | ✔️ |
| BRPOP | ⭕️ | ⭕️ | ✔️ | ✔️ |
| BRPOPLPUSH | ⭕️ | ⭕️ | ✔️ | ✔️ |
| LINDEX | ✔️ | ✔️ | ✔️ | ✔️ |
| LINSERT | ✔️ | ✔️ | ✔️ | ✔️ |
| LLEN | ✔️ | ✔️ | ✔️ | ✔️ |
| LMOVE | ⭕️ | ⭕️ | ✔️ | ✔️ |
| LMPOP | ⭕️ | ⭕️ | ✔️ | ✔️ |
| LPOP | ✔️ | ✔️ | ✔️ | ✔️ |
| LPUSH | ✔️ | ✔️ | ✔️ | ✔️ |
| LPUSHX | ✔️ | ✔️ | ✔️ | ✔️ |
| LRANGE | ✔️ | ✔️ | ✔️ | ✔️ |
| LREM | ✔️ | ✔️ | ✔️ | ✔️ |
| LSET | ✔️ | ✔️ | ✔️ | ✔️ |
| LTRIM | ✔️ | ✔️ | ✔️ | ✔️ |
| RPOP | ✔️ | ✔️ | ✔️ | ✔️ |
| RPOPLPUSH | ⭕️ | ⭕️ | ✔️ | ✔️ |
| RPUSH | ✔️ | ✔️ | ✔️ | ✔️ |
| RPUSHX | ✔️ | ✔️ | ✔️ | ✔️ |
Pub/Sub
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| PSUBSCRIBE | ✔️ | ❌ | ✔️ | ❌ |
| PUBLISH | ✔️ | ✔️ | ✔️ | ✔️ |
| PUBSUB | ✔️ | ❌ | ✔️ | ✔️ |
| PUBSUB HELP | ❌ | ❌ | ❌ | ❌ |
| PUBSUB SHARDCHANNELS | ✔️ | ❌ | ✔️ | ✔️ |
| PUBSUB SHARDNUMSUB | ✔️ | ❌ | ✔️ | ✔️ |
| PUNSUBSCRIBE | ✔️ | ❌ | ✔️ | ❌ |
| SPUBLISH | ✔️ | ✔️ | ✔️ | ✔️ |
| SUBSCRIBE | ✔️ | ❌ | ✔️ | ❌ |
| SSUBSCRIBE | ✔️ | ❌ | ✔️ | ❌ |
| SUNSUBSCRIBE | ✔️ | ❌ | ✔️ | ❌ |
| UNSUBSCRIBE | ✔️ | ❌ | ✔️ | ❌ |
Scripting and functions
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| EVAL | ⭕️ | ❌ | ✔️ | ✔️ |
| EVAL_RO | ⭕️ | ❌ | ✔️ | ✔️ |
| EVALSHA | ⭕️ | ❌ | ✔️ | ✔️ |
| EVALSHA_RO | ⭕️ | ❌ | ✔️ | ✔️ |
| FCALL | ⭕️ | ❌ | ✔️ | ✔️ |
| FCALL_RO | ⭕️ | ❌ | ✔️ | ✔️ |
| FUNCTION DELETE | ✔️ | ❌ | ✔️ | ❌ |
| FUNCTION DUMP | ✔️ | ❌ | ✔️ | ❌ |
| FUNCTION FLUSH | ✔️ | ❌ | ✔️ | ❌ |
| FUNCTION HELP | ✔️ | ❌ | ✔️ | ❌ |
| FUNCTION KILL | ✔️ | ❌ | ✔️ | ❌ |
| FUNCTION LIST | ✔️ | ❌ | ✔️ | ❌ |
| FUNCTION LOAD | ✔️ | ❌ | ✔️ | ❌ |
| FUNCTION RESTORE | ✔️ | ❌ | ✔️ | ❌ |
| FUNCTION STATS | ✔️ | ❌ | ✔️ | ❌ |
| SCRIPT DEBUG | ❌ | ❌ | ❌ | ❌ |
| SCRIPT EXISTS | ✔️ | ❌ | ✔️ | ❌ |
| SCRIPT FLUSH | ✔️ | ❌ | ✔️ | ❌ |
| SCRIPT KILL | ✔️ | ❌ | ✔️ | ❌ |
| SCRIPT LOAD | ✔️ | ❌ | ✔️ | ❌ |
Server management
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| ACL CAT | ❌ | ❌ | ❌ | ❌ |
| ACL DELUSER | ❌ | ❌ | ❌ | ❌ |
| ACL DRYRUN | ❌ | ❌ | ❌ | ➖ |
| ACL GENPASS | ❌ | ❌ | ❌ | ❌ |
| ACL GETUSER | ❌ | ❌ | ❌ | ❌ |
| ACL HELP | ❌ | ❌ | ❌ | ❌ |
| ACL LIST | ❌ | ❌ | ❌ | ❌ |
| ACL LOAD | ❌ | ❌ | ❌ | ❌ |
| ACL LOG | ❌ | ❌ | ❌ | ❌ |
| ACL SAVE | ❌ | ❌ | ❌ | ❌ |
| ACL SETUSER | ❌ | ❌ | ❌ | ❌ |
| ACL USERS | ❌ | ❌ | ❌ | ❌ |
| ACL WHOAMI | ❌ | ❌ | ❌ | ❌ |
| BGREWRITEAOF | ❌ | ❌ | ❌ | ❌ |
| BGSAVE | ❌ | ❌ | ❌ | ❌ |
| COMMAND | ✔️ | ❌ | ✔️ | ✔️ |
| COMMAND COUNT | ✔️ | ❌ | ✔️ | ✔️ |
| COMMAND DOCS | ✔️ | ❌ | ✔️ | ✔️ |
| COMMAND GETKEYS | ✔️ | ❌ | ✔️ | ✔️ |
| COMMAND GETKEYSANDFLAGS | ✔️ | ❌ | ✔️ | ✔️ |
| COMMAND INFO | ✔️ | ❌ | ✔️ | ✔️ |
| COMMAND LIST | ✔️ | ❌ | ✔️ | ✔️ |
| CONFIG GET | ✔️ | ❌ | ✔️ | ✔️ |
| CONFIG HELP | ❌ | ❌ | ❌ | ❌ |
| CONFIG RESETSTAT | ❌ | ❌ | ❌ | ❌ |
| CONFIG REWRITE | ❌ | ❌ | ❌ | ❌ |
| CONFIG SET ①② | ✔️ | ❌ | ✔️ | ✔️ |
| DBSIZE | ✔️ | ❌ | ✔️ | ✔️ |
| DEBUG OBJECT | ❌ | ❌ | ❌ | ❌ |
| DEBUG SEGFAULT | ❌ | ❌ | ❌ | ❌ |
| FAILOVER | ❌ | ❌ | ❌ | ❌ |
| FLUSHALL | ✔️ | ❌ | ✔️ | ✔️ |
| FLUSHDB | ✔️ | ❌ | ✔️ | ✔️ |
| INFO | ✔️ | ❌ | ✔️ | ✔️ |
| LASTSAVE | ❌ | ❌ | ❌ | ❌ |
| LATENCY DOCTOR | ❌ | ❌ | ❌ | ❌ |
| LATENCY GRAPH | ❌ | ❌ | ❌ | ❌ |
| LATENCY HELP | ❌ | ❌ | ❌ | ❌ |
| LATENCY HISTOGRAM | ❌ | ❌ | ❌ | ❌ |
| LATENCY HISTORY | ❌ | ❌ | ❌ | ❌ |
| LATENCY LATEST | ❌ | ❌ | ❌ | ❌ |
| LATENCY RESET | ❌ | ❌ | ❌ | ❌ |
| LOLWUT | ✔️ | ❌ | ✔️ | ✔️ |
| MEMORY DOCTOR | ✔️ | ❌ | ✔️ | ❌ |
| MEMORY HELP | ✔️ | ❌ | ✔️ | ❌ |
| MEMORY MALLOC-STATS | ✔️ | ❌ | ✔️ | ❌ |
| MEMORY PURGE | ✔️ | ❌ | ✔️ | ❌ |
| MEMORY STATS | ✔️ | ❌ | ✔️ | ❌ |
| MEMORY USAGE | ✔️ | ❌ | ✔️ | ❌ |
| MODULE LIST | ❌ | ❌ | ❌ | ❌ |
| MODULE LOAD | ❌ | ❌ | ❌ | ❌ |
| MODULE LOADEX | ❌ | ❌ | ❌ | ❌ |
| MODULE UNLOAD | ❌ | ❌ | ❌ | ❌ |
| MONITOR | ✔️ | ❌ | ✔️ | ❌ |
| PSYNC | ❌ | ❌ | ❌ | ❌ |
| REPLICAOF | ❌ | ❌ | ❌ | ❌ |
| ROLE ② | ✔️ | ❌ | ✔️ | ❌ |
| SAVE | ❌ | ❌ | ❌ | ❌ |
| SHUTDOWN | ❌ | ❌ | ❌ | ❌ |
| SLAVEOF | ❌ | ❌ | ❌ | ❌ |
| SLOWLOG | ✔️ | ❌ | ✔️ | ✔️ |
| SLOWLOG HELP | ✔️ | ❌ | ✔️ | ✔️ |
| SLOWLOG RESET | ✔️ | ❌ | ✔️ | ✔️ |
| SWAPDB | ✔️ | ❌ | ✔️ | ✔️ |
| SYNC | ❌ | ❌ | ❌ | ❌ |
| TIME | ✔️ | ❌ | ✔️ | ✔️ |
Sentinel
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| SENTINEL sentinels ② | ✔️ | ❌ | ✔️ | ❌ |
| SENTINEL get-master-addr-by-name ② | ✔️ | ❌ | ✔️ | ❌ |
Set
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| SADD | ✔️ | ✔️ | ✔️ | ✔️ |
| SCARD | ✔️ | ✔️ | ✔️ | ✔️ |
| SDIFF | ✔️ | ⭕️ | ✔️ | ✔️ |
| SDIFFSTORE | ✔️ | ⭕️ | ✔️ | ✔️ |
| SINTER | ✔️ | ⭕️ | ✔️ | ✔️ |
| SINTERCARD | ✔️ | ⭕️ | ✔️ | ✔️ |
| SINTERSTORE | ✔️ | ⭕️ | ✔️ | ✔️ |
| SISMEMBER | ✔️ | ✔️ | ✔️ | ✔️ |
| SMEMBERS | ✔️ | ✔️ | ✔️ | ✔️ |
| SMISMEMBER | ✔️ | ✔️ | ✔️ | ✔️ |
| SMOVE | ✔️ | ⭕️ | ✔️ | ✔️ |
| SPOP | ✔️ | ✔️ | ✔️ | ✔️ |
| SRANDMEMBER | ✔️ | ✔️ | ✔️ | ✔️ |
| SREM | ✔️ | ✔️ | ✔️ | ✔️ |
| SSCAN | ✔️ | ✔️ | ✔️ | ✔️ |
| SUNION | ✔️ | ⭕️ | ✔️ | ✔️ |
| SUNIONSTORE | ✔️ | ⭕️ | ✔️ | ✔️ |
Sorted set
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| BZMPOP | ⭕️ | ⭕️ | ✔️ | ✔️ |
| BZPOPMAX | ⭕️ | ⭕️ | ✔️ | ✔️ |
| BZPOPMIN | ⭕️ | ⭕️ | ✔️ | ✔️ |
| ZADD | ✔️ | ✔️ | ✔️ | ✔️ |
| ZCARD | ✔️ | ✔️ | ✔️ | ✔️ |
| ZCOUNT | ✔️ | ✔️ | ✔️ | ✔️ |
| ZDIFF | ✔️ | ⭕️ | ✔️ | ✔️ |
| ZDIFFSTORE | ✔️ | ⭕️ | ✔️ | ✔️ |
| ZINCRBY | ✔️ | ✔️ | ✔️ | ✔️ |
| ZINTER | ✔️ | ✔️ | ✔️ | ✔️ |
| ZINTERCARD | ✔️ | ⭕️ | ✔️ | ✔️ |
| ZINTERSTORE | ✔️ | ⭕️ | ✔️ | ✔️ |
| ZLEXCOUNT | ✔️ | ✔️ | ✔️ | ✔️ |
| ZMPOP | ⭕️ | ⭕️ | ✔️ | ✔️ |
| ZMSCORE | ✔️ | ✔️ | ✔️ | ✔️ |
| ZPOPMAX | ✔️ | ✔️ | ✔️ | ✔️ |
| ZPOPMIN | ✔️ | ✔️ | ✔️ | ✔️ |
| ZRANDMEMBER | ✔️ | ✔️ | ✔️ | ✔️ |
| ZRANGE | ✔️ | ✔️ | ✔️ | ✔️ |
| ZRANGEBYLEX | ✔️ | ✔️ | ✔️ | ✔️ |
| ZRANGEBYSCORE | ✔️ | ✔️ | ✔️ | ✔️ |
| ZRANGESTORE | ⭕️ | ⭕️ | ✔️ | ✔️ |
| ZRANK | ✔️ | ✔️ | ✔️ | ✔️ |
| ZREM | ✔️ | ✔️ | ✔️ | ✔️ |
| ZREMRANGEBYLEX | ✔️ | ✔️ | ✔️ | ✔️ |
| ZREMRANGEBYRANK | ✔️ | ✔️ | ✔️ | ✔️ |
| ZREMRANGEBYSCORE | ✔️ | ✔️ | ✔️ | ✔️ |
| ZREVRANGE | ✔️ | ✔️ | ✔️ | ✔️ |
| ZREVRANGEBYLEX | ✔️ | ✔️ | ✔️ | ✔️ |
| ZREVRANGEBYSCORE | ✔️ | ✔️ | ✔️ | ✔️ |
| ZREVRANK | ✔️ | ✔️ | ✔️ | ✔️ |
| ZSCAN | ✔️ | ✔️ | ✔️ | ✔️ |
| ZSCORE | ✔️ | ✔️ | ✔️ | ✔️ |
| ZUNION | ✔️ | ⭕️ | ✔️ | ✔️ |
| ZUNIONSTORE | ✔️ | ⭕️ | ✔️ | ✔️ |
Stream
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| XACK | ✔️ | ✔️ | ✔️ | ✔️ |
| XADD | ✔️ | ✔️ | ✔️ | ✔️ |
| XAUTOCLAIM | ✔️ | ✔️ | ✔️ | ✔️ |
| XCLAIM | ✔️ | ✔️ | ✔️ | ✔️ |
| XDEL | ✔️ | ✔️ | ✔️ | ✔️ |
| XGROUP | ✔️ | ✔️ | ✔️ | ✔️ |
| XGROUP CREATECONSUMER | ✔️ | ✔️ | ✔️ | ✔️ |
| XINFO | ✔️ | ✔️ | ✔️ | ✔️ |
| XLEN | ✔️ | ✔️ | ✔️ | ✔️ |
| XPENDING | ✔️ | ✔️ | ✔️ | ✔️ |
| XRANGE | ✔️ | ✔️ | ✔️ | ✔️ |
| XREAD | ⭕️ | ⭕️ | ✔️ | ✔️ |
| XREADGROUP | ⭕️ | ⭕️ | ✔️ | ✔️ |
| XREVRANGE | ✔️ | ✔️ | ✔️ | ✔️ |
| XTRIM | ✔️ | ✔️ | ✔️ | ✔️ |
String
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| APPEND | ✔️ | ✔️ | ✔️ | ✔️ |
| DECR | ✔️ | ✔️ | ✔️ | ✔️ |
| DECRBY | ✔️ | ✔️ | ✔️ | ✔️ |
| GET | ✔️ | ✔️ | ✔️ | ✔️ |
| GETDEL | ✔️ | ✔️ | ✔️ | ✔️ |
| GETEX | ✔️ | ✔️ | ✔️ | ✔️ |
| GETRANGE | ✔️ | ✔️ | ✔️ | ✔️ |
| GETSET | ✔️ | ✔️ | ✔️ | ✔️ |
| LCS | ✔️ | ⭕️ | ✔️ | ✔️ |
| INCR | ✔️ | ✔️ | ✔️ | ✔️ |
| INCRBY | ✔️ | ✔️ | ✔️ | ✔️ |
| INCRBYFLOAT | ✔️ | ✔️ | ✔️ | ✔️ |
| MGET | ✔️ | ⭕️ | ✔️ | ✔️ |
| MSET | ✔️ | ⭕️ | ✔️ | ✔️ |
| MSETNX | ⭕️ | ⭕️ | ✔️ | ✔️ |
| PSETEX | ✔️ | ✔️ | ✔️ | ✔️ |
| SET | ✔️ | ✔️ | ✔️ | ✔️ |
| SETEX | ✔️ | ✔️ | ✔️ | ✔️ |
| SETNX | ✔️ | ✔️ | ✔️ | ✔️ |
| SETRANGE | ✔️ | ✔️ | ✔️ | ✔️ |
| STRALGO | ❌ | ❌ | ❌ | ❌ |
| STRLEN | ✔️ | ✔️ | ✔️ | ✔️ |
Transactions
| Command | Cluster architecture | Allowed in cluster architecture transactions | Read/write splitting architecture | Allowed in read/write splitting architecture transactions |
|---|
| DISCARD | ✔️ | ✔️ | ✔️ | ✔️ |
| EXEC | ✔️ | ✔️ | ✔️ | ✔️ |
| MULTI | ✔️ | ❌ | ✔️ | ❌ |
| UNWATCH | ✔️ | ❌ | ✔️ | ✔️ |
| WATCH | ⭕️ | ❌ | ✔️ | ❌ |
FAQ
Do cluster architecture and read/write splitting architecture instances in proxy mode support the WAIT command?
Yes. WAIT is supported in proxy versions 7.1.5 and later. If you're on an earlier version, upgrade the proxy version.