云原生内存数据库Tair支持多个引擎版本和架构类型,不同的引擎版本和架构类型对Redis命令的支持度有所不同。本文以原生Redis的相关命令为基准,介绍详细的命令支持情况和使用限制,为您的实例选型提供相关参考。
Tair命令限制
以下为实例最新小版本的兼容情况。若您的实例存在更多限制,请您升级实例小版本后重试,具体操作请参见升级小版本。
如需了解Release notes,请参见Tair小版本发布日志。
关于设置参数的具体操作,请参见设置实例参数。
无限制。
命令族
限制项
Keys(键)
MOVE与RENAME系列命令,需通过pena_rename_move_compatible_enabled参数开启兼容模式,才能执行。
Server(数据库管理)
不支持命令:SWAPDB。
命令族
限制项
Hyperloglog
不支持命令:PFADD、PFDEBUG、PFCOUNT、PFMERGE、PFSELFTEST。
Keys(键)
不支持命令:MOVE、OBJECT、SORT、TOUCH。
Rename、RenameNX最大支持修改max-rename-commit-size大小(默认为16 MB)的Key。
Server(数据库管理)
不支持命令:SWAPDB。
仅支持FLUSHDB命令同步执行模式,不支持异步执行模式。在生产环境中,请谨慎执行FLUSHDB命令。
Streams(流)
不支持命令:XACK、XADD、XCLAIM、XDEL、XGROUP、XINFO、XLEN、XPENDING、XRANGE、XREAD、XREADGROUP、XREVRANGE、XTRIM。
Scripting(Lua脚本)
Lua脚本相关命令,例如EVAL、EVALSHA、SCRIPT EXISTS等,需通过txn-isolation-lock参数和#no_loose_lua-strict-mode参数开启、控制。
Transactions(事务)
事务相关命令,例如DISCARD、EXEC、WATCH等,可通过txn-isolation-lock参数开启、控制。
Tair命令支持
Tair实例兼容多个原生Redis版本:
Tair内存型(兼容Redis 7.0):完全兼容Redis社区7.0版本及以下版本接口,额外支持Tair扩展数据结构。
Tair内存型(兼容Redis 6.0):完全兼容Redis社区6.2版本及以下版本接口,额外支持Tair扩展数据结构。
Tair内存型(兼容Redis 5.0):完全兼容Redis社区5.0版本及以下版本接口,额外支持Tair扩展数据结构。
Tair持久内存型:兼容Redis社区6.0版本及以下版本接口,部分限制请参见Tair命令支持与限制。
Tair磁盘型:兼容Redis社区6.0版本及以下版本接口,部分限制请参见Tair命令支持与限制。
为便于浏览和内容表达,本文的表格约定使用下述注释:
✔️表示支持该命令。
❌表示不支持该命令。
➖表示在原生Redis的该版本下,该命令尚未开始支持。例如原生Redis中,TOUCH命令在3.2.1及以上版本才开始支持,表格中的2.8版本下该命令即被标记为➖。
数字标记①:集群架构实例在执行该命令时,需要开通直连访问并使用直连地址连接至实例,详情请参见使用直连模式连接Tair。通过Proxy节点的连接地址连接至实例时,也兼容支持该命令。
数字标记②:为兼容某些客户端框架,执行CONFIG SET命令时仅返回
OK
,不会真正地修改参数。本文以最新内核小版本进行介绍,部分命令可能在指定小版本后开放支持,详情请参见Tair小版本发布日志和Proxy小版本发布日志。
各命令族中的命令,如无特殊备注和说明,默认支持Tair实例的所有架构,即标准架构、集群架构及读写分离架构。集群架构与读写分离架构实例在使用某些特定的命令时存在一些限制,详情请参见集群架构与读写分离架构的命令限制。