All Products
Search
Document Center

Tair:Limits on commands supported by Tair

Last Updated:Oct 09, 2023

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

Limits on commands supported by Tair instances

  • DRAM-based instances

    No limits.

  • Persistent memory-optimized instances

    Command group

    Unsupported command

    Keys

    RENAME, RENAMENX, and MOVE

    Note

    Persistent memory-optimized instances of minor version 1.2.4 or later are compatible with MOVE and RENAME commands. You can specify the pena_rename_move_compatible_enabled parameter to use these commands. For more information, see Modify the values of parameters for an instance.

    Server

    SWAPDB

    Streams

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

    Note

    Persistent memory-optimized instances of minor version 1.2.3 or later support the Streams command group.

    If your persistent memory-optimized instance is of a minor version earlier than 1.2.4, the instance performance degrades as the size of keys increases when you run specific update commands. If the size of keys increases to the MB level, the latency of the engine significantly rises. These commands include SETRANGE, SETBIT, APPEND, and BITFIELD. To run these commands, update the minor version of your instance to 1.2.4 or later. For more information, see Update the minor version of an instance.

  • ESSD-based instances

    Command group

    Unsupported command

    Geo

    GEOADD, GEODIST, GEOHASH, GEOPOS, GEORADIUS, GEORADIUS_RO, GEORADIUSBYMEMBER, and GEORADIUSBYMEMBER_RO

    HyperLogLog

    PFADD, PFDEBUG, PFCOUNT, PFMERGE, and PFSELFTEST

    Keys

    RENAME, RENAMENX, MOVE, OBJECT, SORT, and TOUCH

    Lists

    BRPOP, BLPOP, and BRPOPLPUSH

    Note

    ESSD-based instances of minor version 2.3.2 or later support these commands. To run these commands, update the minor version of your instance to 2.3.2 or later.

    Scripting

    EVAL, EVALSHA, SCRIPT DEBUG, SCRIPT EXISTS, SCRIPT FLUSH, SCRIPT KILL, and SCRIPT LOAD

    Note

    ESSD-based instances of minor version 2.3.1 or later support Lua scripting commands by using the txn-isolation-lock and #no_loose_lua-strict-mode parameters. To run these commands, update the minor version of your instance to 2.3.1 or later. For more information, see Modify the values of parameters for an instance.

    Strings

    BITCOUNT, BITFIELD, BITOP, BITPOS, GETBIT, and SETBIT

    Note

    ESSD-based instances of minor version 2.3.1 or later support these commands.

    Server

    SWAPDB

    Transactions

    DISCARD, EXEC, MULTI, UNWATCH, and WATCH

    Note

    ESSD-based instances of minor version 2.3.1 or later support these commands by using the txn-isolation-lock parameter. To run these commands, update the minor version of your instance to 2.3.1 or later. For more information, see Modify the values of parameters for an instance.

    Streams

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

  • Hybrid-storage instances (phased out)

    Command group

    Unsupported command

    Keys

    RENAME, RENAMENX, MOVE, and SORT (STORE option)

    Lists

    LINSERT and LREM

    Server

    SWAPDB

    Scripting

    SCRIPT DEBUG and SCRIPT LOAD

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

✔️

✔️

✔️

✔️

✔️

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

✔️

✔️

✔️

✔️

✔️