Redis HSCAN 多重匹配

Redis HSCAN Multiple Match

这是我的哈希集

HSET MySet 111222333 Tom
HSET MySet 444555666 Julia
HSET MySet 777888999 Paul 

你可以把set字段想象成一个phone数字,把SET值想象成一个人的名字。

我需要获取 phone 号码中包含“23”和“89”的所有记录。

可以执行 2 个请求并将它们合并到服务器上:

HSCAN MySet 0 MATCH *23*
HSCAN MySet 0 MATCH *89*

我们可以用一个表达式做同样的事情吗?像这样

HSCAN MySet 0 Match *23* OR *89*  
OR
HSCAN MySet 0 Match *23|89*  

不直接 - Redis 进行全局样式模式匹配,但实际上并不支持。

你可以做的是使用一点 Lua 魔法来制作你自己的高效过滤,类似于此答案中的示例: