Regex Sqaure括号和星号符号作为通配符在Redis键中使用字符或使用匹配项扫描

Regex Sqaure括号和星号符号作为通配符在Redis键中使用字符或使用匹配项扫描,regex,redis,nosql,Regex,Redis,Nosql,我们使用SCAN命令和MATCH以以下方式查询redis: scan 0 MATCH "S*" 这将找到任何以S开头的内容 然后还有一个方括号,语法也支持[],其中或 这会找到任何以e或f开头的东西 现在,, 我期待两者的结合 匹配以e或f开头的任何内容 匹配e或f之后的任何S 我得出了以下结论: scan 0 MATCH "[ef]S*" 但这只是继续运行,没有任何结果。以上是正确的吗?让我知道应按本地验证的方式工作: 127.0.0.1:6379> FLUSHALL OK 127.

我们使用SCAN命令和MATCH以以下方式查询redis:

scan 0 MATCH "S*"
这将找到任何以S开头的内容

然后还有一个方括号,语法也支持[],其中或

这会找到任何以e或f开头的东西

现在,, 我期待两者的结合

匹配以e或f开头的任何内容 匹配e或f之后的任何S 我得出了以下结论:

scan 0 MATCH "[ef]S*"

但这只是继续运行,没有任何结果。以上是正确的吗?让我知道

应按本地验证的方式工作:

127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> MSET a "" e "" f "" eSz "" fSx "" efg "" fgi "" SSX ""
OK
127.0.0.1:6379> scan 0 MATCH "[ef]S*"
1) "0"
2) 1) "eSz"
   2) "fSx"
127.0.0.1:6379> 

应按照本地验证的方式工作:

127.0.0.1:6379> FLUSHALL
OK
127.0.0.1:6379> MSET a "" e "" f "" eSz "" fSx "" efg "" fgi "" SSX ""
OK
127.0.0.1:6379> scan 0 MATCH "[ef]S*"
1) "0"
2) 1) "eSz"
   2) "fSx"
127.0.0.1:6379> 

看来我是对的,只是我的数据集很大。3800万个密钥,这需要时间。看来我是对的,只是我的数据集很大。3800万把钥匙,这需要时间。