*Redis COMMAND GETKEYSANDFLAGS 命令

从给定命令中提取 key 参数以及每个 key 的读写标志。Redis 7.0+ 引入,是 COMMAND GETKEYS 的增强版本。


*语法

COMMAND GETKEYSANDFLAGS command arg [arg ...]

*参数说明

参数 类型 必填 说明
command String 命令名称
arg String 命令参数

*返回值

条件 返回值
成功 key 和 flags 数组 [key, flags, key, flags, ...]

*时间复杂度

O(N)

*

*示例

> COMMAND GETKEYSANDFLAGS MSET a b c d
1) "a"
2) 1) "OW"              # 写入标志
   2) "update"
3) "c"
4) 1) "OW"
   2) "update"

> COMMAND GETKEYSANDFLAGS ZUNIONSTORE out 2 zset1 zset2 WEIGHTS 1 2
1) "out"
2) 1) "OW"
   2) "update"
3) "zset1"
4) 1) "read"
5) "zset2"
6) 1) "read"

*常见错误

  1. 命令不支持 key 提取:部分命令(如 EVAL)的动态 key 需要手动分析。

*最佳实践

  1. 命令分析:解析命令中的 key 位置和读写标志,用于路由、权限控制和审计。

*FAQ

Q: COMMAND GETKEYSANDFLAGS 和 COMMAND GETKEYS 有什么区别? A: COMMAND GETKEYS 只返回 key 列表;COMMAND GETKEYSANDFLAGS 同时返回每个 key 的读写标志(read/write/update 等)。