相對標準架構,叢集架構與讀寫分離架構執行個體在原生Redis命令的支援上有一定的區別,例如禁用某些命令、單個命令不支援訪問跨Slot的Key等,請在使用過程中瞭解並遵守相應的規範。
叢集架構命令限制
Tair叢集架構執行個體相容不同的Redis版本,各版本整體的命令支援情況請參見Tair命令支援。
叢集架構支援直連模式與代理模式,其命令限制有所不同:
叢集架構直連模式
由於主流用戶端(例如Jedis用戶端)的自身限制,不支援SELECT命令。
如需執行涉及多Key的命令,請確保命令操作的Key都分布在同一個Slot中,例如使用Hash tag等。
在叢集架構直連模式中執行事務時,要求與開源Redis Cluster行為一致,即嚴格要求事務所操作的Key均在同一Slot。
叢集架構代理模式
在叢集架構直連模式的基礎上,代理節點額外不支援WAIT、HELLO、CLIENT ID等命令,但支援SELECT命令,也支援對如下命令執行跨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)支援的命令列表。
為便於日常管理和營運,叢集架構代理模式執行個體支援多個自研的命令,更多資訊請參見阿里雲自研的Tair命令。
除此之外,Redis Cluster對使用Lua指令碼增加了一些限制,Tair叢集架構在此基礎上存在額外限制,更多資訊請參見叢集中Lua指令碼的限制。
讀寫分離架構命令限制
Tair讀寫分離架構執行個體相容不同的Redis版本,各版本整體的命令支援情況請參見Tair命令支援。
代理模式(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 | ✔️ | ✔️ | ✔️ | ✔️ |
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 | ✔️ | ❌ | ✔️ | ❌ |