All Products
Search
Document Center

:Limits on commands supported by Tair

Last Updated:Aug 21, 2024

Tair provides instances of multiple engine versions and architectures. Tair instances of different engine versions and architectures support different Redis commands. This topic describes the native Redis commands supported by Tair and the limits on these commands.

Limits on commands supported by Tair instances

Note
  • DRAM-based instances

    No limits.

  • Persistent memory-optimized instances

    Command group

    Unsupported command

    Keys

    The MOVE and RENAME commands must be enabled by using the pena_rename_move_compatible_enabled parameter.

    Server

    SWAPDB

  • ESSD/SSD-based instances

    Command group

    Unsupported command

    HyperLogLog

    PFADD, PFDEBUG, PFCOUNT, PFMERGE, and PFSELFTEST

    Keys

    • The MOVE, OBJECT, SORT, and TOUCH commands are not supported.

    • The Rename and RenameNX commands have a maximum limit on the size of the keys they can modify, which is governed by the max-rename-commit-size parameter. By default, this limit is set to 16 MB.

    Server

    • SWAPDB is not supported.

    • The FLUSHDB command can be run synchronously, but not asynchronously. In a production environment, exercise caution when you run the FLUSHDB command.

    Streams

    XACK, XADD, XCLAIM, XDEL, XGROUP, XINFO, XLEN, XPENDING, XRANGE, XREAD, XREADGROUP, XREVRANGE, and XTRIM

    Scripting

    Lua scripting commands, such as EVAL, EVALSHA, and SCRIPT EXISTS, can be enabled and disabled by using the txn-isolation-lock and #no_loose_lua-strict-mode parameters.

    Transactions

    Transaction-related commands, such as DISCARD, EXEC, and WATCH, can be enabled and disabled by using the txn-isolation-lock parameter.

Commands supported by Tair instances

Tair instance series are compatible with multiple open source Redis versions.

The following list describes the symbols that are used in the following tables:

  • ️️✔️ indicates that the command is supported.

  • ❌ indicates that the 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 a Tair 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.

  • This topic focuses on the availability of commands for instances of the latest minor version. Some commands are supported only for instances of versions later than a specific version. For more information, see Release notes for Tair minor versions and Release notes for Tair proxy nodes.

Note

By default, commands in all command groups are supported by Tair standard instances, cluster instances, and read/write splitting instances. Cluster instances and read/write splitting instances have limits on specific commands. For more information, see Limits on commands supported by cluster instances and read/write splitting instances.

Bitmaps

Command

Redis 2.8

Redis 4.0

Redis 5.0

Redis 6.0

Redis 7.0

BITCOUNT

✔️

✔️

✔️

✔️

✔️

BITFIELD

✔️

✔️

✔️

✔️

✔️

BITFIELD_RO

✔️

✔️

BITOP

✔️

✔️

✔️

✔️

✔️

BITPOS

✔️

✔️

✔️

✔️

✔️

GETBIT

✔️

✔️

✔️

✔️

✔️

SETBIT

✔️

✔️

✔️

✔️

✔️

Cluster management

  • 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.

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

✔️

✔️

✔️

Connection management

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

✔️

✔️

✔️

✔️

✔️

Generic

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

✔️

✔️

✔️

✔️

Geospatial indices

Command

Redis 2.8

Redis 4.0

Redis 5.0

Redis 6.0

Redis 7.0

GEOADD

✔️

✔️

✔️

✔️

✔️

GEODIST

✔️

✔️

✔️

✔️

✔️

GEOHASH

✔️

✔️

✔️

✔️

✔️

GEOPOS

✔️

✔️

✔️

✔️

✔️

GEORADIUS

✔️

✔️

✔️

✔️

✔️

GEORADIUSBYMEMBER

✔️

✔️

✔️

✔️

✔️

GEOSEARCH

✔️

GEOSEARCHSTORE

✔️

Hashes

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

✔️

✔️

✔️

✔️

✔️

HyperLogLog

Command

Redis 2.8

Redis 4.0

Redis 5.0

Redis 6.0

Redis 7.0

PFADD

✔️

✔️

✔️

✔️

✔️

PFCOUNT

✔️

✔️

✔️

✔️

✔️

PFMERGE

✔️

✔️

✔️

✔️

✔️

Lists

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

✔️

✔️

✔️

✔️

✔️

LPOS

✔️

✔️

LPUSH

✔️

✔️

✔️

✔️

✔️

LPUSHX

✔️

✔️

✔️

✔️

✔️

LRANGE

✔️

✔️

✔️

✔️

✔️

LREM

✔️

✔️

✔️

✔️

✔️

LSET

✔️

✔️

✔️

✔️

✔️

LTRIM

✔️

✔️

✔️

✔️

✔️

RPOP

✔️

✔️

✔️

✔️

✔️

RPOPLPUSH

✔️

✔️

✔️

✔️

✔️

RPUSH

✔️

✔️

✔️

✔️

✔️

RPUSHX

✔️

✔️

✔️

✔️

✔️

Pub/Sub

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

✔️

✔️

✔️

✔️

✔️

Scripting and functions

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

✔️

✔️

✔️

✔️

✔️

Server management

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

✔️

✔️

✔️

✔️

✔️

Sentinel

Command

Redis 2.8

Redis 4.0

Redis 5.0

Redis 6.0

Redis 7.0

SENTINEL sentinels

✔️

✔️

✔️

✔️

SENTINEL get-master-addr-by-name

✔️

✔️

✔️

✔️

Sets

Command

Redis 2.8

Redis 4.0

Redis 5.0

Redis 6.0

Redis 7.0

SADD

✔️

✔️

✔️

✔️

✔️

SCARD

✔️

✔️

✔️

✔️

✔️

SDIFF

✔️

✔️

✔️

✔️

✔️

SDIFFSTORE

✔️

✔️

✔️

✔️

✔️

SINTER

✔️

✔️

✔️

✔️

✔️

SINTERCARD

✔️

SINTERSTORE

✔️

✔️

✔️

✔️

✔️

SISMEMBER

✔️

✔️

✔️

✔️

✔️

SMEMBERS

✔️

✔️

✔️

✔️

✔️

SMISMEMBER

❌️

✔️

SMOVE

✔️

✔️

✔️

✔️

✔️

SPOP

✔️

✔️

✔️

✔️

✔️

SRANDMEMBER

✔️

✔️

✔️

✔️

✔️

SREM

✔️

✔️

✔️

✔️

✔️

SSCAN

✔️

✔️

✔️

✔️

✔️

SUNION

✔️

✔️

✔️

✔️

✔️

SUNIONSTORE

✔️

✔️

✔️

✔️

✔️

Sorted sets

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

✔️

✔️

✔️

✔️

✔️

Streams

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

✔️

✔️

✔️

Strings

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

✔️

✔️

✔️

✔️

✔️

Transactions

Command

Redis 2.8

Redis 4.0

Redis 5.0

Redis 6.0

Redis 7.0

DISCARD

✔️

✔️

✔️

✔️

✔️

EXEC

✔️

✔️

✔️

✔️

✔️

MULTI

✔️

✔️

✔️

✔️

✔️

UNWATCH

✔️

✔️

✔️

✔️

✔️

WATCH

✔️

✔️

✔️

✔️

✔️

References