集群架构与读写分离实例的命令限制

更新时间:
复制 MD 格式

相对标准架构,集群架构与读写分离架构的云数据库 Tair(兼容 Redis)实例在Redis命令的支持上有一定的区别,例如禁用某些命令、单个命令不支持访问跨Slot的Key等,请在使用过程中了解并遵守相应的规范。

集群架构命令限制

集群架构实例本身兼容不同的Redis版本,各版本整体的命令支持情况请参见Redis开源版命令支持与Tair(企业版)命令支持与限制。

集群架构支持直连模式与代理模式,其命令限制有所不同:

集群架构直连模式

  • 支持SELECT命令。直连模式仅支持集群初始化方式,但由于某些客户端在集群初始化方式下不支持SELECT命令,因此在上述场景中无法执行该命令。

  • 仅兼容Redis 7.0版的集群架构实例支持SWAPDB命令。

  • 如需执行涉及多Key的命令,请确保命令操作的Key都分布在同一个Slot中,例如使用Hash tag等。

  • 在集群架构直连模式中执行事务时,要求与开源Redis Cluster行为一致,即严格要求事务所操作的Key均在同一Slot。

集群架构代理模式

  • 支持SELECT命令,代理模式通过中间层屏蔽集群架构细节,具有更好的客户端兼容性。

  • 在集群架构直连模式的基础上,代理节点不支持CLIENT INFO、CLIENT ID等命令,但支持对如下命令执行跨Slot的多Key操作:DEL、EXISTS等,详细介绍请参见代理模式(Proxy)支持的命令列表。

  • CLIENT KILL命令目前支持的格式为:CLIENT KILL <ip:port>和CLIENT KILL ADDR <ip:port>。

  • 执行CLIENT LIST命令会列出所有连接到该代理节点的连接信息,返回结果与Redis原生命令有所不同,说明如下:

    • id、age、idle、addr、fd、name、db、multi、omem、cmd字段和原生Redis的含义一致。

    • sub、psub在代理节点上没有区分,统一为1或0。

    • qbuf、qbuf-free、obl和oll字段目前没有具体意义。

  • 关于事务的限制:

    • 当事务内所有的Key都在同一个Slot时,事务可以正常执行,且遵循事务语义。

    • 当不满足事务内所有的Key都在同一个Slot,但满足每个命令内部的Key都在同一个Slot时,事务可以正常执行,属于同一个Slot的命令之间遵循事务语义,属于不同Slot的命令之间不保证事务语义。

    • 当事务不满足同一个命令内的Key都属于同一个Slot时,命令无法执行。

    • 部分没有Key的命令不支持在事务中执行,详情查看代理模式(Proxy)支持的命令列表。

  • SCAN 0 命令将从集群的首个数据分片开始,按序遍历各分片数据。仅当当前分片遍历完成后,才会转向下一个分片。若需对特定分片进行定向扫描,请使用 ISCAN 命令。

  • 为便于日常管理和运维,集群架构代理模式实例支持多个自研的命令,更多信息请参见阿里云自研的Proxy命令。

除此之外,Redis Cluster对使用Lua脚本增加了一些限制,云数据库 Tair(兼容 Redis)集群架构在此基础上存在额外限制,更多信息请参见集群架构特殊限制。

读写分离实例的命令限制

读写分离实例兼容不同的Redis版本,各版本整体的命令支持情况请参见Redis开源版命令支持与Tair(企业版)命令支持与限制。

  • 由于读写分离实例默认为代理模式,读写分离实例存在代理节点的命令限制,例如代理节点不支持CLIENT INFO、CLIENT ID等命令,详细介绍请参见代理模式(Proxy)支持的命令列表。

  • 为便于日常管理和运维,读写分离架构实例支持多个自研的命令,更多信息请参见阿里云自研的Proxy命令。

代理模式(Proxy)支持的命令列表

以下内容适用于集群架构代理模式和读写分离架构,为便于浏览和内容表达,本文的表格约定使用下述注释:

  • ✔️表示Proxy支持该命令,若该命令支持多Key,则表示支持跨Slot执行该命令。

  • ⭕️表示Proxy支持该命令,但存在限制,请确保命令所要操作的Key都分布在1个Slot中,例如使用Hash tag等。

  • ❌表示Proxy不支持该命令。

  • 数字标记①:为兼容某些客户端框架,该命令仅返回OK或空结果,不会真正执行。

  • 数字标记②:该请求由Proxy直接处理返回,不受Redis DB版本限制。

Bitmap

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

BITCOUNT

✔️

✔️

✔️

✔️

BITFIELD

✔️

✔️

✔️

✔️

BITFIELD_RO

❌

❌

❌

❌

BITOP

⭕️

⭕️

✔️

✔️

BITPOS

✔️

✔️

✔️

✔️

GETBIT

✔️

✔️

✔️

✔️

SETBIT

✔️

✔️

✔️

✔️

Cluster management

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

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

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

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

✔️(有限制)

✔️(有限制)

✔️(有限制)

✔️(有限制)

PING ②

✔️

❌

✔️

✔️

QUIT ②

✔️

✔️

✔️

✔️

RESET

❌

❌

❌

❌

SELECT

✔️

✔️

✔️

✔️

说明

默认情况下,不支持使用HELLO命令。如需使用该命令,请确保Proxy的小版本升级至7.0.9及以上,并且已启用hello_enabled参数。

Generic

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

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

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

GEOADD

✔️

✔️

✔️

✔️

GEODIST

✔️

✔️

✔️

✔️

GEOHASH

✔️

✔️

✔️

✔️

GEOPOS

✔️

✔️

✔️

✔️

GEORADIUS

⭕️

⭕️

✔️

✔️

GEORADIUSBYMEMBER

⭕️

⭕️

✔️

✔️

GEOSEARCH

✔️

✔️

✔️

✔️

GEOSEARCHSTORE

⭕️

⭕️

✔️

✔️

Hash

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

HDEL

✔️

✔️

✔️

✔️

HEXISTS

✔️

✔️

✔️

✔️

HGET

✔️

✔️

✔️

✔️

HGETALL

✔️

✔️

✔️

✔️

HINCRBY

✔️

✔️

✔️

✔️

HINCRBYFLOAT

✔️

✔️

✔️

✔️

HKEYS

✔️

✔️

✔️

✔️

HLEN

✔️

✔️

✔️

✔️

HMGET

✔️

✔️

✔️

✔️

HMSET

✔️

✔️

✔️

✔️

HRANDFIELD

✔️

✔️

✔️

✔️

HSCAN

✔️

✔️

✔️

✔️

HSET

✔️

✔️

✔️

✔️

HSETNX

✔️

✔️

✔️

✔️

HSTRLEN

✔️

✔️

✔️

✔️

HVALS

✔️

✔️

✔️

✔️

HyperLogLog

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

PFADD

✔️

✔️

✔️

✔️

PFCOUNT

⭕️

⭕️

✔️

✔️

PFMERGE

⭕️

⭕️

✔️

✔️

Lists

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

BLPOP

⭕️

⭕️

✔️

✔️

BLMOVE

⭕️

⭕️

✔️

✔️

BLMPOP

⭕️

⭕️

✔️

✔️

BRPOP

⭕️

⭕️

✔️

✔️

BRPOPLPUSH

⭕️

⭕️

✔️

✔️

LINDEX

✔️

✔️

✔️

✔️

LINSERT

✔️

✔️

✔️

✔️

LLEN

✔️

✔️

✔️

✔️

LMOVE

⭕️

⭕️

✔️

✔️

LMPOP

⭕️

⭕️

✔️

✔️

LPOP

✔️

✔️

✔️

✔️

LPUSH

✔️

✔️

✔️

✔️

LPUSHX

✔️

✔️

✔️

✔️

LRANGE

✔️

✔️

✔️

✔️

LREM

✔️

✔️

✔️

✔️

LSET

✔️

✔️

✔️

✔️

LTRIM

✔️

✔️

✔️

✔️

RPOP

✔️

✔️

✔️

✔️

RPOPLPUSH

⭕️

⭕️

✔️

✔️

RPUSH

✔️

✔️

✔️

✔️

RPUSHX

✔️

✔️

✔️

✔️

Pub/Sub

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

PSUBSCRIBE

✔️

❌

✔️

❌

PUBLISH

✔️

✔️

✔️

✔️

PUBSUB

✔️

❌

✔️

✔️

PUBSUB HELP

❌

❌

❌

❌

PUBSUB SHARDCHANNELS

✔️

❌

✔️

✔️

PUBSUB SHARDNUMSUB

✔️

❌

✔️

✔️

PUNSUBSCRIBE

✔️

❌

✔️

❌

SPUBLISH

✔️

✔️

✔️

✔️

SUBSCRIBE

✔️

❌

✔️

❌

SSUBSCRIBE

✔️

❌

✔️

❌

SUNSUBSCRIBE

✔️

❌

✔️

❌

UNSUBSCRIBE

✔️

❌

✔️

❌

Scripting and Functions

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

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

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

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

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

SENTINEL sentinels ②

✔️

❌

✔️

❌

SENTINEL get-master-addr-by-name ②

✔️

❌

✔️

❌

Set

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

SADD

✔️

✔️

✔️

✔️

SCARD

✔️

✔️

✔️

✔️

SDIFF

✔️

⭕️

✔️

✔️

SDIFFSTORE

✔️

⭕️

✔️

✔️

SINTER

✔️

⭕️

✔️

✔️

SINTERCARD

✔️

⭕️

✔️

✔️

SINTERSTORE

✔️

⭕️

✔️

✔️

SISMEMBER

✔️

✔️

✔️

✔️

SMEMBERS

✔️

✔️

✔️

✔️

SMISMEMBER

✔️

✔️

✔️

✔️

SMOVE

✔️

⭕️

✔️

✔️

SPOP

✔️

✔️

✔️

✔️

SRANDMEMBER

✔️

✔️

✔️

✔️

SREM

✔️

✔️

✔️

✔️

SSCAN

✔️

✔️

✔️

✔️

SUNION

✔️

⭕️

✔️

✔️

SUNIONSTORE

✔️

⭕️

✔️

✔️

Sorted Set

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

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

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

XACK

✔️

✔️

✔️

✔️

XADD

✔️

✔️

✔️

✔️

XAUTOCLAIM

✔️

✔️

✔️

✔️

XCLAIM

✔️

✔️

✔️

✔️

XDEL

✔️

✔️

✔️

✔️

XGROUP

✔️

✔️

✔️

✔️

XGROUP CREATECONSUMER

✔️

✔️

✔️

✔️

XINFO

✔️

✔️

✔️

✔️

XLEN

✔️

✔️

✔️

✔️

XPENDING

✔️

✔️

✔️

✔️

XRANGE

✔️

✔️

✔️

✔️

XREAD

⭕️

⭕️

✔️

✔️

XREADGROUP

⭕️

⭕️

✔️

✔️

XREVRANGE

✔️

✔️

✔️

✔️

XTRIM

✔️

✔️

✔️

✔️

String

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

APPEND

✔️

✔️

✔️

✔️

DECR

✔️

✔️

✔️

✔️

DECRBY

✔️

✔️

✔️

✔️

GET

✔️

✔️

✔️

✔️

GETDEL

✔️

✔️

✔️

✔️

GETEX

✔️

✔️

✔️

✔️

GETRANGE

✔️

✔️

✔️

✔️

GETSET

✔️

✔️

✔️

✔️

LCS

✔️

⭕️

✔️

✔️

INCR

✔️

✔️

✔️

✔️

INCRBY

✔️

✔️

✔️

✔️

INCRBYFLOAT

✔️

✔️

✔️

✔️

MGET

✔️

⭕️

✔️

✔️

MSET

✔️

⭕️

✔️

✔️

MSETNX

⭕️

⭕️

✔️

✔️

PSETEX

✔️

✔️

✔️

✔️

SET

✔️

✔️

✔️

✔️

SETEX

✔️

✔️

✔️

✔️

SETNX

✔️

✔️

✔️

✔️

SETRANGE

✔️

✔️

✔️

✔️

STRALGO

❌

❌

❌

❌

STRLEN

✔️

✔️

✔️

✔️

Transactions

命令

集群架构

是否允许在集群架构的事务中执行

读写分离架构

是否允许在读写分离架构的事务中执行

DISCARD

✔️

✔️

✔️

✔️

EXEC

✔️

✔️

✔️

✔️

MULTI

✔️

❌

✔️

❌

UNWATCH

✔️

❌

✔️

✔️

WATCH

⭕️

❌

✔️

❌

常见问题

  • Q:代理模式的集群架构和读写分离架构实例支持WAIT命令吗?

    A:代理版本7.1.5及之后支持WAIT命令,版本过低可升级代理版本。