*Redis ARGREP 命令
ARGREP 在数组中搜索匹配模式的元素并返回。
*语法
ARGREP key pattern [COUNT count]
*参数说明
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| key | String | 是 | 数组键名 |
| pattern | String | 是 | 搜索模式(glob 风格通配符) |
| COUNT count | Integer | 否 | 最多返回匹配数量,默认返回全部 |
*返回值
- Array:匹配的元素列表
- Empty array:无匹配元素
- Nil:key 不存在
- Error:key 存储的不是 Array 类型
*时间复杂度
O(N),N 为数组长度。
*示例
*基本模式匹配
> ARSET files "report.pdf" "data.csv" "image.png" "notes.txt"
OK
> ARGREP files "*.pdf"
1) "report.pdf"
*限定返回数量
> ARGREP files "*.txt" COUNT 5
1) "notes.txt"
*多字符通配
> ARSET users "alice_001" "bob_002" "alice_003" "charlie_001"
OK
> ARGREP users "alice_*"
1) "alice_001"
2) "alice_003"
*常见错误
| 错误 | 原因 | 解决 |
|---|---|---|
| WRONGTYPE | key 不是 Array 类型 | 确认 key 的数据类型 |
| ERR wrong number of arguments | 缺少 pattern | 提供搜索模式 |
*最佳实践
*FAQ
Q1: ARGREP 和 ARSCAN MATCH 有什么区别? A: ARGREP 是阻塞式全量搜索并返回结果;ARSCAN 是游标式迭代,适合大数组。
Q2: 支持正则表达式吗?
A: 不支持,仅支持 glob 风格通配符(*、?、[abc])。
Q3: 匹配是大小写敏感的吗? A: 默认大小写敏感,暂不支持大小写不敏感匹配。