ApsaraDB for Redis Community Edition provides instances of multiple editions and architectures. The commands supported by the instances vary with their instance types. This topic describes the native Redis commands supported by ApsaraDB for Redis Community Edition and the limits of these commands.

Precautions

Cluster and read/write splitting instances do not support the SWAPDB, CLIENT ID, or SORT (with the BY and GET options) command, and have limits on specific commands. For more information, see Limits on commands supported by cluster instances and Limits on the commands supported by read/write splitting instances.

Symbols in the tables

This section describes the symbols that are used in the tables of this topic.
  • ✔️ indicates that this command is supported.
  • ❌ indicates that this command is not supported.
  • ➖ indicates that the command is not supported in open source Redis. For example, the TOUCH command is supported only by Redis 3.2.1 and later. This command is marked as ➖ in the Redis 2.8 column of the table.
  • Footnote ①: If you want to run the command on a cluster instance, you must enable the direct connection mode to use a private endpoint to connect to the instance. For more information, see Use a private endpoint to connect to an ApsaraDB for Redis instance. You can also run the command if you use the endpoint of a proxy node to connect to an instance.
  • Footnote ②: The CONFIG SET command returns only OK. The command does not modify the parameters. This ensures that the instance remains compatible with specific client frameworks.
Note By default, commands in all command groups are supported by standard instances, cluster instances, and read/write splitting instances. For more information about instance architectures, see Overview.
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
BITCOUNT ✔️ ✔️ ✔️ ✔️ ✔️
BITFIELD ✔️ ✔️ ✔️ ✔️ ✔️
BITFIELD_RO ✔️ ✔️
BITOP ✔️ ✔️ ✔️ ✔️ ✔️
BITOPS ✔️ ✔️ ✔️ ✔️ ✔️
GETBIT ✔️ ✔️ ✔️ ✔️ ✔️
SETBIT ✔️ ✔️ ✔️ ✔️ ✔️
  • The commands in the cluster command group are not supported by standard instances.
  • However, if you use the endpoint of a proxy node to connect to an instance, specific commands in the cluster command group are supported. These commands include CLUSTER INFO, CLUSTER KEYSLOT, CLUSTER NODES, CLUSTER SLAVES, and CLUSTER SLOTS.
  • The READONLY and READWRITE commands are supported as of minor versions 0.1.14 of ApsaraDB for Redis 5.0 and 6.0.
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
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 ✔️ ✔️ ✔️

Cluster and read/write splitting instances do not support the CLIENT ID command.

Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
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 ✔️ ✔️ ✔️ ✔️ ✔️
  • Cluster and read/write splitting instances do not support the SORT (with the BY and GET options) command.
  • The WAIT command is not supported by proxy nodes of cluster instances. You can run the WAIT command by using the private endpoint of a cluster instance to connect to the instance.
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
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 ✔️ ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
GEOADD ✔️ ✔️ ✔️ ✔️ ✔️
GEODIST ✔️ ✔️ ✔️ ✔️ ✔️
GEOHASH ✔️ ✔️ ✔️ ✔️ ✔️
GEOPOS ✔️ ✔️ ✔️ ✔️ ✔️
GEORADIUS ✔️ ✔️ ✔️ ✔️ ✔️
GEORADIUSBYMEMBER ✔️ ✔️ ✔️ ✔️ ✔️
GEOSEARCH ✔️
GEOSEARCHSTORE ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
HDEL ✔️ ✔️ ✔️ ✔️ ✔️
HEXISTS ✔️ ✔️ ✔️ ✔️ ✔️
HGET ✔️ ✔️ ✔️ ✔️ ✔️
HGETALL ✔️ ✔️ ✔️ ✔️ ✔️
HINCRBY ✔️ ✔️ ✔️ ✔️ ✔️
HINCRBYFLOAT ✔️ ✔️ ✔️ ✔️ ✔️
HKEYS ✔️ ✔️ ✔️ ✔️ ✔️
HLEN ✔️ ✔️ ✔️ ✔️ ✔️
HMGET ✔️ ✔️ ✔️ ✔️ ✔️
HMSET ✔️ ✔️ ✔️ ✔️ ✔️
HRANDFIELD ✔️
HSCAN ✔️ ✔️ ✔️ ✔️ ✔️
HSET ✔️ ✔️ ✔️ ✔️ ✔️
HSETNX ✔️ ✔️ ✔️ ✔️ ✔️
HSTRLEN ✔️ ✔️ ✔️ ✔️ ✔️
HVALS ✔️ ✔️ ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
PFADD ✔️ ✔️ ✔️ ✔️ ✔️
PFCOUNT ✔️ ✔️ ✔️ ✔️ ✔️
PFMERGE ✔️ ✔️ ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
BLPOP ✔️ ✔️ ✔️ ✔️ ✔️
BLMOVE ✔️
BLMPOP ✔️
BRPOP ✔️ ✔️ ✔️ ✔️ ✔️
BRPOPLPUSH ✔️ ✔️ ✔️ ✔️ ✔️
LINDEX ✔️ ✔️ ✔️ ✔️ ✔️
LINSERT ✔️ ✔️ ✔️ ✔️ ✔️
LLEN ✔️ ✔️ ✔️ ✔️ ✔️
LMOVE ✔️
LMPOP ✔️
LPOP ✔️ ✔️ ✔️ ✔️ ✔️
LPUSH ✔️ ✔️ ✔️ ✔️ ✔️
LPUSHX ✔️ ✔️ ✔️ ✔️ ✔️
LRANGE ✔️ ✔️ ✔️ ✔️ ✔️
LREM ✔️ ✔️ ✔️ ✔️ ✔️
LSET ✔️ ✔️ ✔️ ✔️ ✔️
LTRIM ✔️ ✔️ ✔️ ✔️ ✔️
RPOP ✔️ ✔️ ✔️ ✔️ ✔️
RPOPLPUSH ✔️ ✔️ ✔️ ✔️ ✔️
RPUSH ✔️ ✔️ ✔️ ✔️ ✔️
RPUSHX ✔️ ✔️ ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
PSUBSCRIBE ✔️ ✔️ ✔️ ✔️ ✔️
PUBLISH ✔️ ✔️ ✔️ ✔️ ✔️
PUBSUB ✔️ ✔️ ✔️ ✔️ ✔️
PUBSUB HELP ✔️
PUBSUB SHARDCHANNELS ✔️
PUBSUB SHARDNUMSUB ✔️
PUNSUBSCRIBE ✔️ ✔️ ✔️ ✔️ ✔️
SPUBLISH ✔️
SUBSCRIBE ✔️ ✔️ ✔️ ✔️ ✔️
SSUBSCRIBE ✔️
SUNSUBSCRIBE ✔️
UNSUBSCRIBE ✔️ ✔️ ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
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 ✔️ ✔️ ✔️ ✔️ ✔️

Cluster and read/write splitting instances do not support the SWAPDB command.

Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
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 ✔️ ✔️ ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
SENTINEL sentinels ✔️ ✔️ ✔️ ✔️
SENTINEL get-master-addr-by-name ✔️ ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
SADD ✔️ ✔️ ✔️ ✔️ ✔️
SCARD ✔️ ✔️ ✔️ ✔️ ✔️
SDIFF ✔️ ✔️ ✔️ ✔️ ✔️
SDIFFSTORE ✔️ ✔️ ✔️ ✔️ ✔️
SINTER ✔️ ✔️ ✔️ ✔️ ✔️
SINTERCORD ✔️
SINTERSTORE ✔️ ✔️ ✔️ ✔️ ✔️
SISMEMBER ✔️ ✔️ ✔️ ✔️ ✔️
SMEMBERS ✔️ ✔️ ✔️ ✔️ ✔️
SMISMEMBER ❌️ ✔️
SMOVE ✔️ ✔️ ✔️ ✔️ ✔️
SPOP ✔️ ✔️ ✔️ ✔️ ✔️
SRANDMEMBER ✔️ ✔️ ✔️ ✔️ ✔️
SREM ✔️ ✔️ ✔️ ✔️ ✔️
SSCAN ✔️ ✔️ ✔️ ✔️ ✔️
SUNION ✔️ ✔️ ✔️ ✔️ ✔️
SUNIONSTORE ✔️ ✔️ ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
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 ✔️ ✔️ ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
XACK ✔️ ✔️ ✔️
XADD ✔️ ✔️ ✔️
XAUTOCLAIM ✔️
XCLAIM ✔️ ✔️ ✔️
XDEL ✔️ ✔️ ✔️
XGROUP ✔️ ✔️ ✔️
XGROUP CREATECONSUMER ✔️
XINFO ✔️ ✔️ ✔️
XLEN ✔️ ✔️ ✔️
XPENDING ✔️ ✔️ ✔️
XRANGE ✔️ ✔️ ✔️
XREAD ✔️ ✔️ ✔️
XREADGROUP ✔️ ✔️ ✔️
XREVRANGE ✔️ ✔️ ✔️
XTRIM ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
APPEND ✔️ ✔️ ✔️ ✔️ ✔️
DECR ✔️ ✔️ ✔️ ✔️ ✔️
DECRBY ✔️ ✔️ ✔️ ✔️ ✔️
GET ✔️ ✔️ ✔️ ✔️ ✔️
GETDEL ✔️
GETEX ✔️
GETRANGE ✔️ ✔️ ✔️ ✔️ ✔️
GETSET ✔️ ✔️ ✔️ ✔️ ✔️
LCS ✔️
INCR ✔️ ✔️ ✔️ ✔️ ✔️
INCRBY ✔️ ✔️ ✔️ ✔️ ✔️
INCRBYFLOAT ✔️ ✔️ ✔️ ✔️ ✔️
MGET ✔️ ✔️ ✔️ ✔️ ✔️
MSET ✔️ ✔️ ✔️ ✔️ ✔️
MSETNX ✔️ ✔️ ✔️ ✔️ ✔️
PSETEX ✔️ ✔️ ✔️ ✔️ ✔️
SET ✔️ ✔️ ✔️ ✔️ ✔️
SETEX ✔️ ✔️ ✔️ ✔️ ✔️
SETNX ✔️ ✔️ ✔️ ✔️ ✔️
SETRANGE ✔️ ✔️ ✔️ ✔️ ✔️
STRALGO ✔️
STRLEN ✔️ ✔️ ✔️ ✔️ ✔️
Command Redis 2.8 Redis 4.0 Redis 5.0 Redis 6.0 Redis 7.0
DISCARD ✔️ ✔️ ✔️ ✔️ ✔️
EXEC ✔️ ✔️ ✔️ ✔️ ✔️
MULTI ✔️ ✔️ ✔️ ✔️ ✔️
UNWATCH ✔️ ✔️ ✔️ ✔️ ✔️
WATCH ✔️ ✔️ ✔️ ✔️ ✔️