| del | 集群版支持跨 Slot/跨节点命令操作,由 Proxy 层自动完成 Key 分发与结果聚合。 | 跨 Slot 和跨节点都不支持 | 正常使用 |
| unlink | 正常使用 |
| exists | 正常使用 |
| mset | 正常使用 |
| mget | 正常使用 <strong>注意:</strong> Proxy 针对命令 mget 的检验返回不符合预期将报错。`-ERR invalid return data`。
|
| zunionstore | 由于跨 Slot 操作需 Proxy 额外处理命令分发与结果聚合,建议遵循 Redis 社区规范,确保关联 Key 位于同一 Slot 以提升性能。 |
| randomkey | 集群版 randomkey 命令随机转发到后端不同节点。 | 只在当前连接的节点执行 | 建议仅在明确需要当前分片随机 Key 时使用,否则应改用 SCAN 或其他替代方案。 |
| keys | - 集群版 keys 命令默认并行在所有 Master 节点执行,由 Proxy 层聚合各分片结果后统一返回客户端。
- 集群版支持通过`keys [@shard_id]`语法指定分片执行,此时仅透传目标分片的执行结果,不进行跨节点聚合。
- 标准版 keys 命令直接透传到唯一 Master 节点执行,无分片聚合过程,响应行为与原生 Redis 一致。
| 只在当前连接的节点执行 | 请根据业务需求选择 keys 命令执行方式:指定分片执行(返回单分片数据)或全分片执行(返回聚合数据)。执行方式分别如下:- KEYS {hash_tag}pattern
- KEYS pattern NODEID
|
| scan | - 集群版 scan 命令默认轮询所有 Master 节点。
- 标准版 scan 命令直接透传到 Master 节点。
- 集群版/标准版均支持指定后端节点执行(如`SCAN 0 @shard2`)。
| 只在当前连接的节点执行 | 请根据业务选择 scan 命令执行方式:指定分片执行(返回单分片数据)或全分片执行(返回聚合数据)。执行方式分别如下:- SCAN cursor [MATCH {hash_tag}pattern] [COUNT count]
- SCAN cursor [MATCH pattern] [COUNT count] NODEID
|
| dbsize | - 集群版 dbsize 命令默认在所有 Master 节点执行,由 Proxy 层聚合各分片结果后统一返回客户端。
- 集群版支持通过`dbsize [@shard_id]`语法指定分片执行,此时仅透传目标分片的执行结果,不进行跨节点聚合。
- 标准版 dbsize 命令直接透传到唯一 Master 节点执行,无分片聚合过程,响应行为与原生 Redis 一致。
| 只在当前连接的节点执行 | 请根据业务需求选择 dbsize 命令执行方式:指定分片执行(返回单分片数据)或全分片执行(返回聚合数据)。执行方式分别如下: |
| flushdb | - 集群版 flushdb 命令默认在所有 Master 节点执行,由 Proxy 层聚合各分片结果后统一返回客户端。
- 集群版支持通过`flushdb [@shard_id]`语法指定分片执行,此时仅透传目标分片的执行结果,不进行跨节点聚合。
- 6.2与7.0版本支持 ASYNC、SYNC 选项,默认为ASYNC。
| 只在当前连接的节点执行 | 请根据业务需求选择 flushdb 命令执行方式:指定分片执行(返回单分片数据)或全分片执行(返回聚合数据)。命令使用如下:- FLUSHDB
- FLUSHDB SYNC
- FLUSHDB ASYNC
- FLUSHDB SYNC NODEID
- FLUSHDB ASYNC NODEID
|
| flushall | - 集群版 flushall 命令默认在所有 Master 节点执行,由 Proxy 层聚合各分片结果后统一返回客户端。
- 集群版支持通过`flushall [@shard_id]`语法指定分片执行,此时仅透传目标分片的执行结果,不进行跨节点聚合。
- 6.2与7.0版本支持 ASYNC、SYNC 选项,默认为ASYNC。
| 只在当前连接的节点执行 | 请根据业务需求选择 flushall 命令执行方式:指定分片执行(返回单分片数据)或全分片执行(返回聚合数据)。命令使用如下:- FLUSHALL
- FLUSHALL SYNC
- FLUSHALL ASYNC
- FLUSHALL SYNC NODEID
- FLUSHALL ASYNC NODEID
|
| subscribe | - 集群版命令默认转发至所有 Master 节点执行。
- 标准版此命令默认转发至 Master 节点。
| 只在当前连接的节点执行 | 正常使用 |
| unsubscribe | 正常使用 |
| psubscribe | 正常使用 |
| punsubscribe | 正常使用 |
| publish | - 集群版 publish 命令根据 channel 名称计算的 slot 值路由到对应的 Master 节点进行广播。
- 标准版 publish 命令默认转发 Master 节点。
| 只在当前连接的节点执行 | 正常使用 |
| pubsub | - 支持 CHANNELS、NUMPAT、NUMSUB 选项。
- 集群版 pubsub 命令默认随机转发到后端不同 Master 节点,并且返回结果相同。
- 标准版 pubsub命令默认转发至 Master。
| 只在当前连接的节点执行,不同节点返回不同的结果 | Redis 集群版对 PUBSUB 命令进行了增强,所有节点均返回全局一致的频道列表,与开源版的不同节点返回不一致存在差异,建议业务代码避免依赖分片局部状态,需按全集群维度处理订阅逻辑。 |
| cluster | - 集群版支持 cluster keyslot、cluster slots、cluster nodes、cluster info、cluster countkeysinslot、cluster keyslot、cluster getkeysinslot 命令。
- 集群版 cluster slots、cluster nodes、cluster info 命令默认随机转发到后端节点。
- 集群版 cluster info 命令额外支持指定后端节点执行。
- 集群版 cluster keyslot、cluster countkeysinslot、cluster keyslot、cluster getkeysinslot 命令默认根据指定的 slot 转发到相应节点。
- 集群版 cluster slots、cluster nodes 等命令将屏蔽、转换部分敏感信息。
| 只在当前连接的节点执行 | 请根据业务场景评估 cluster 命令的转发模式。 |
| asking | 集群版/标准版无实际行为。 | 执行后有重定向效果 | Proxy 会处理 ask 错误,用户无需关注。 |
| function | - | - | 只在当前连接的节点执行 | 建议评估云上架构是否与实际业务场景存在差异,如果存在差异则需要修改代码。 |
| script | - 集群版与标准版均不支持 script debug 命令。
- 集群版 script exists、script flush、script kill、script load 命令默认会在所有 Master 节点上同步执行,并确保各节点返回一致的结果后才响应客户端。
- 标准版 script 命令默认转发至 Master 节点。
| 只在当前连接的节点执行 | 请检查现有代码逻辑是否与云平台默认全节点执行的逻辑存在差异,如存在不一致需按云上规范进行改造。 |
multi exec discard | - 事务或 watch 锁定的后端节点由 首个操作的键的哈希槽决定(watch 优先于 multi 后的首条命令),确保事务或监听操作在单节点内原子执行。
- 标准版默认转发至 Master 节点。
| 只在当前连接的节点执行 | 建议评估事务以及 watch 命令使用是否与上云前存在差异。 |
| watch | 执行 watch 后,连接即被锁定到所监听 key 所在的节点,后续所有命令均通过该连接转发。 | 只在当前连接的节点执行 | 建议 watch 和 unwatch 命令之间的 key 操作在同一个 slot 上。 |
| expireat | - | 只在当前连接的节点执行,并支持 [NX \| XX \| GT \| LT] 选项 | 请评估业务是否需要使用 [NX \| XX \| GT \| LT] 选项。 |
| pexpire | - |
| pexpireat | - |
| client | - 集群版与标准版均在 Proxy 层完全兼容 client list、client setname、client getname、client id、client kill、client unblock 命令。
- client list 的实现依赖一条专用订阅连接:每个 Proxy 都与负责0号 slot 的 master 保持该连接,用于实时汇聚所有 Proxy 的会话信息。
- client list 的输出仅包含 id、addr、fd、name、cmd、age、idle、proxy 字段,且 id 始终为负数,格式与开源版本不同。
- client kill 可直接终止其他 Proxy 上的会话。
| 只在当前连接的节点执行,并返回相应 redis 版本的 client list 信息 | 请自查业务是否依赖 client 命令;如非必需,请避免执行 client list,以免慢查询和节点内存暴涨。 |
| monitor | monitor 命令只会监控当前连接到的 Proxy 上执行的命令 | 只在当前连接的节点执行 | 使用该命令请明确监控目标是单个 Proxy 还是后端某个分片的指标。 |
| imonitor | - 集群版 imonitor 命令支持指定后端节点上执行的命令。
- 标准版 imonitor 命令只转发到 Master 节点。
| 无此命令 | 使用如下:- 集群版:IMONITOR NODEID
- 标准版:IMONITOR
|
| time | - 集群版 time 命令默认随机转发到后端不同节点。
- 标准版 time 命令默认转发至 Master 节点。
| 只在当前连接的节点执行 | 请评估业务是否依赖 time 命令。 |
| wait | - 集群版 wait 命令转发依据上一次写命令转发的后端 Master 节点进行转发。
- 标准版 wait 命令默认转发至 Master 节点。
| 只在当前连接的节点执行 | 请评估云上 Proxy 转发逻辑与业务代码中的差异。 |
| command | - 集群版 command 命令默认随机转发到后端不同节点
- 标准版 command 命令转发至默认 Master 节点。
| 只在当前连接的节点执行 | 正常使用 |
| lolwut | - 集群版 lolwut 命令默认随机转发到后端不同节点。
- 标准版 lolwut 命令默认转发至 Master 节点。
| 只在当前连接的节点执行 | 正常使用 |
| echo | - 集群版 echo 命令默认随机转发到后端不同 Master 节点。
- 标准版默认转发到 Master 节点。
| 只在当前连接的节点执行 | 正常使用 |
| info | - 集群版 info 命令默认随机转发至后端 Master 节点执行。
- 标准版 info 命令默认转发至 Master 节点。
- info 命令额外支持指定后端节点进行转发。
- info 命令针对返回信息会进行敏感信息屏蔽、转换。
| 只在当前连接的节点执行 | info 命令使用如下: |
| ping | - 集群版 ping 命令默认随机转发到后端任一 Master 节点。
- 集群版 ping 命令额外支持指定后端节点执行。
- 集群版与标准版均支持 ping 不转发到后端节点,由Proxy 直接回包。
| 只在当前连接的节点执行 | 请评估 ping 命令是否需要透传至后端分片,命令使用如下: |
| hello | - | - 集群版与标准版 hello 命令目前仅支持 hello 2,并且需要用户执行 Auth 后才能正常执行。
- Proxy 目前不支持 resp3 协议,执行 hello 3将会报错,请将客户框架转换为 resp2 的 auth 命令进行认证。
| 只在当前连接的节点执行 | 请评估业务框架是否存在使用`HELLO 3 auth username password`形式进行认证;是否使用 resp3 协议,需要降级为 resp2 协议。 |
| config | - 集群版与标准版 config set 命令被 Proxy 拦截,立即返回“成功”响应,命令不会真正生效。
- 集群版 config get 命令默认随机访问任一后端节点。
- 标准版默认访问 Master 节点。
| 只在当前连接的节点执行 | 建议通过控制台查看或者修改配置。具体信息,请参见 参数配置。 |
| slowlog | - 集群版 slowlog 命令默认执行必须指定后端节点,否则报错
- 标准版 slowlog 命令默认转发至 Master 节点。
| 只在当前连接的节点执行 | 建议通过控制台查看完整的慢查信息。 |
| memory | 集群版不支持 memory 命令。 | 只在当前连接的节点执行 | 建议通过控制台查看实例的内存分析(大 Key 分析)。 |
| readonly | 集群版 readonly 命令将在 Proxy 上执行并返回,实际不生效。 | 只在当前连接的节点执行并生效 | 建议通过控制台开启副本只读功能。具体操作,请参见 副本只读。 |
| debug | debug 命令仅支持 object 子命令。 | debug 命令全部子命令支持 | 请业务评估是否使用其他子命令,如有则需要进行代码修改。 |
| sentinel | 集群版与标准版均兼容 SENTINEL sentinels、SENTINEL get-master-addr-by-name、SENTINEL slaves,不透传到后端。 | 集群模式不支持哨兵模式 | - 集群模式,可忽略此命令。
- 哨兵模式,请评估当前云上 Redis 支持的 sentinel 命令是否满足业务需求。
|
| role | - 集群版 role 命令默认随机转发至后端任一节点。
- 标准版默认转发至 Master 节点。
| 只在当前连接的节点执行 | 建议用户不使用。 |
| lastsave | - 集群版默认随机转发到后端不同 Master 节点。
- 标准版默认转发到 Master 节点。
| 只在当前连接的节点执行 | 建议用户不使用。 |
| latency | - 集群版不支持。
- 标准版转发至默认 Master 节点。
| 只在当前连接的节点执行 | 建议用户不使用。 |
| readwrite | 集群版不支持 readwrite 命令。 | 只在当前连接的节点执行 | 建议用户不使用。 |
| pfselftest | 集群版不支持 pfselftest 命令 | 只在当前连接的节点执行 | 建议用户不使用。 |
| post | 集群版不支持 post 命令 | 只在当前连接的节点执行 | 建议用户不使用。 |
| host | 集群版不支持 host 命令 | 只在当前连接的节点执行 | 建议用户不使用。 |