fix: Redis KEYS命令自动补通配符(*)

输入 KEYS match 自动变为 match* 模糊匹配,
无需手动加 *,同时匹配 ? [] 等 Redis 原生通配符
This commit is contained in:
logan committed 2026-05-28 16:07:16 +08:00
1 parent 3b3cc32d45
commit b8df2c0027
1 file changed
+6 -3
+6 -3
View File
@@ -717,13 +717,16 @@ func executeRedisQuery(instance *model.Instance, dbSelect string, command string
args = append(args, p) args = append(args, p)
} }
// For KEYS command, use SCAN with COUNT instead for safety + pagination // For KEYS command, use SCAN with pagination (auto-append * if no wildcard)
if cmd == "KEYS" && strings.Contains(parts[len(parts)-1], "*") { if cmd == "KEYS" {
// Replace KEYS * with SCAN-based pagination
pattern := "*" pattern := "*"
if len(parts) > 1 { if len(parts) > 1 {
pattern = parts[1] pattern = parts[1]
} }
// Auto-append * if pattern has no wildcard
if !strings.Contains(pattern, "*") && !strings.Contains(pattern, "?") && !strings.Contains(pattern, "[") {
pattern = pattern + "*"
}
var allKeys []string var allKeys []string
cursor := uint64(0) cursor := uint64(0)
maxScan := offset + limit maxScan := offset + limit