不同版本兼容性
当前各版本与架构对社区版命令的支持情况,请参见下列各命令族,各命令族表格中 ✓ 表示支持,x 表示不支持,- 表示该命令不存在跨 Slot 访问的场景。
7.0 版本命令
开源 Redis 7.0 版本新增了一些命令与参数,腾讯云数据库 Redis® 当前支持情况如下表所示。
命令族 | 命令 | 新增说明 |
sorted sets | ZMPOP numkeys key [key ...] <MIN | MAX> [COUNT count] | 新增命令。 原子性地弹出多个有序集合(sorted set)中的最小或最大的成员。 COUNT count:一次弹出多少个成员。默认为 1。 MIN 或 MAX:指定弹出集合中的最小或最大成员。 支持多 key 操作。 |
| BZMPOP timeout numkeys key [key ...] <MIN | MAX> [COUNT count] | 新增命令。 原子性地从一个或多个有序集合(sorted sets)中弹出一个或多个具有最大或最小分数的成员,并且它支持阻塞操作。timeout 是命令等待的超时时间(以毫秒为单位)。 支持多 key 操作。 |
| ZINTERCARD numkeys key [key ...] [LIMIT limit] | 新增命令。 用于 zset 数据类型。计算两个或多个有序集合(sorted sets)之间的交集,返回交集中元素的数量。 numkeys:是有序集合数量。 key:是有序集合的键名。 AGGREGATE:指定聚合方法。 Limit:返回数量。 |
list 族 | LMPOP numkeys key [key ...] <LEFT | RIGHT> [COUNT count] | 新增命令。 从 list 中弹出 COUNT 个元素,弹出方向由 LEFT | RIGHT 控制。 多 Key 命令。 |
| BLMPOP timeout numkeys key [key ...] <LEFT | RIGHT> [COUNT count] | 新增命令。 lmpop 的阻塞版本,timeout 设置阻塞的时间。 如果 blmpop 用在 multi exec 中,行为等同于 lmpop,此规格由 redis 定义,proxy 不做特殊处理 |
sets族 | SINTERCARD numkeys key [key ...] [LIMIT limit] | 新增命令。 用于 set 数据类型。返回指定 key 的交集的个数,最多 LIMIT 个。 |
keys 族 | EXPIRETIME key | 新增命令。 返回 key 过期时间的秒级时间戳。 |
| PEXPIRETIME key | 新增命令。 返回 key 过期时间的毫秒级时间戳。 |
| EXPIRE key seconds [NX | XX | GT | LT] | 新增 NX | XX | GT | LT参数。 NX 只当 key 不存过期时间的时候,设置过期时间。 XX 只当 key 存在过期时间的时候,设置过期时间。 GT 只当新的过期时间比当前过期时间更大的时候,设置新的过期时间。 LT 只当新的过期时间比当前过期时间更小的时候,设置新的过期时间。 |
| SORT_RO key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC | DESC] [ALPHA] | 新增命令。 对 Redis 中的有序集合(sorted set)进行排序并获取排序后的结果。 |
string 族 | SET key value [NX | XX] [GET] [EX seconds | PX milliseconds | EXAT unix-time-seconds | PXAT unix-time-milliseconds | KEEPTTL] | 新增 NX 和 GET 参数。 NX:表示 Not exists,只有当键不存在时,才会设置键值对。 GET: 设置新值,返回旧值。 |
| BITPOS key bit [start [end [BYTE | BIT]]] | 新增 BYTE 和 BIT 参数。指定偏移量的单位。BYTE:表示字节偏移,BIT:表示位偏移。默认为 BYTE。 |
| LCS key1 key2 [LEN] [IDX] [MINMATCHLEN min-match-len] [WITHMATCHLEN] | 新增命令。 返回两个 key 的最长公共子序列。 |
scripting 族 | EVAL_RO script numkeys [key [key ...]] [arg [arg ...]] | 新增命令,可在只读副本中运行lua script。 |
| EVALSHA_RO sha1 numkeys [key [key ...]] [arg [arg ...]] | 新增命令,可在只读副本中运行lua script。 |
Fuction (Redis 7.0 新增) | FUNCTION DELETE library-name | 新增 Fuction 功能。 删除一个 lib 和其中的函数。 |
| FUNCTION DUMP | 导出所有函数。 |
| 23.FUNCTION FLUSH [ASYNC | SYNC] | 删除所有的 lib 和其中的函数。 |
| FUNCTION KILL | Kill 当前正在执行中的函数。 |
| FUNCTION LIST [LIBRARYNAME library-name-pattern] [WITHCODE] | 返回 lib 和函数的信息。 |
| FUNCTION LOAD [REPLACE] function-code | 加载/替换函数。 |
| FUNCTION RESTORE serialized-value [FLUSH | APPEND | REPLACE] |
用于恢复之前使用 SAVE 或 BGSAVE 命令保存的快照。 FLUSH:恢复快照之前,当前数据库中的所有数据都会被清空 APPEND:恢复快照之前,当前数据库中的数据将被追加到快照中。 REPLACE:恢复快照之前,当前数据库中的数据将被快照中的数据完全替换。 |
| FUNCTION STATS | 返回当前正在执行的函数的状态。 |
| FCALL function numkeys [key [key ...]] [arg [arg ...]] | 调用某个 Fuction。 |
| FCALL_RO function numkeys [key [key ...]] [arg [arg ...]] | FCALL 的 Readonly 版本。 |
stream | XADD key [NOMKSTREAM] [<MAXLEN | MINID> [= | ~] threshold [LIMIT count]] <* | id> field value [field value ...] | 新增参数,支持在指定毫秒下,生成消息 ID。 |
server 族 | CONFIG SET/GET | 新增参数,原子性的处理多个配置的 set、get。 |
| Quit | 标记为 deprecated,客户端可以直接关闭 TCP 连接。 |
| SHUTDOWN [NOSAVE | SAVE] [NOW] [FORCE] [ABORT] | 新增 NOW | FORCE | ABORT。 NOW:立即关闭,不等待任何正在进行的命令完成。 FORCE:强制关闭 Redis 服务器,即使有命令正在执行。 ABORT:终止正在执行的命令,而不执行任何其他命令。 |
| COMMAND GETKEYSANDFLAGS command [arg [arg ...]] | 新增命令,获取命令的 key 和 flag。 |
| COMMAND DOCS [command-name [command-name ...]] | 新增命令。返回命令的文档信息,包含历史更改等记录。 |
| COMMAND LIST [FILTERBY <MODULE module-name | ACLCAT category | PATTERN pattern>] | 新增命令。返回 Redis 命令列表。 |
| COMMAND INFO | 更新命令。返回 Redis 命令的信息。 |
| INFO [section [section ...]] | 新增参数。支持同时获取多个章节。 |
| XGROUP CREATE key group <id | $> [MKSTREAM] [ENTRIESREAD entries-read] | 新增 ENTRIESREAD ,用于设置和开启 entries-read 和 lag 功能。 |
| XGROUP SETID key group <id | $> [ENTRIESREAD entries-read] | 新增 ENTRIESREAD ,用于设置和开启 entries-read 和 lag 功能。 |
6.2 版本命令
针对最新开源 Redis 6.2 版本中新增的一些命令参数,腾讯云数据库 Redis® 当前的支持情况如下表所示。
说明:
Redis 使用 RESP(Redis Serialization Protocol)协议与客户端进行通信,而 HELLO 命令用于协商服务端与客户端使用 RESP 协议的具体版本,确保通信的效率和兼容性。当前,Hello 命令仅支持 RESP2 协议。
命令族 | 命令 | 社区版新增命令与参数 | 是否支持 |
server 族 | MONITOR | 在 Redis 6.2 版本中,AUTH 命令不会被输出到 MONITOR 命令的输出中。 | 是 |
keys 族 | DEL | 开启 lazyfree-lazy-user-del, 即懒惰删除(lazy eviction)机制。 | 是 |
| SCAN | 新增 TYPE 参数,可指定返回键的类型。 | 否 |
connection 族 | CLIENT LIST | 新增 laddr field 和 ID filter 参数。 laddr field:指的是客户端的本地地址和端口号。 ID filter:是一个可选的过滤器,可以使用它来指定要返回哪个客户端的详细信息。 | 否 |
| CLIENT KILL | CLIENT KILL 新增 local address ,指定要关闭的客户端的本地地址和端口号。 | 否 |
| AUTH | AUTH 新增 username 参数,支持用户名和密码进行身份验证。 | 否 |
list 族 | LPOP | LPOP key [count] ,count 为新增参数,指定要弹出的元素个数。 | 是 |
| RPOP | RPOP key [count] ,count 为新增参数,指定要弹出的元素个数。 | 是 |
stream 族 | XPENDING | 新增参数 IDLE,指定消费者空闲时间的阈值。 | 是 |
| XADD | 新增了三个选项:NOMKSTREAM、MINID 和 LIMIT。 NOMKSTREAM:用于禁止自动创建 Stream。 MINID:用于指定 Stream 中最小的消息 ID。 LIMIT:用于每个 Stream 中的消息数量。 | 是 |