实际业务场景:
现需求要将多个KEY的set集合数据合并到一个总集合中,思路:通过scan分批扫描满足条件的KEY,然后用sunionstore分批合并。
注意闭坑:此种解决方案只适用于待合并的集合KEY较多,但所有集合存储的总数据量不大的情况,sunionstore的复杂度为O(N),若合并的数据量较大,同样会造成REDIS长时间阻塞,与KEYS命令无异
主逻辑线程:
SACN方法:
SUNIONSTORE方法:
模式匹配pattern:
用于Keys命令或match命令得到匹配的key时使用,注意不要与正则表达式混淆
语法:KEYS pattern / scan 0 match pattern count 10
说明:返回与指定模式相匹配的所用的keys。
该命令所支持的匹配模式如下:
(1)?:用于匹配单个字符。例如,h?llo可以匹配hello、hallo和hxllo等;
(2)*:用于匹配零个或者多个字符。例如,h*llo可以匹配hllo和heeeello等;
(3)[]:可以用来指定模式的选择区间。例如h[ae]llo可以匹配hello和hallo,但是不能匹配hillo。
同时,可以使用“/”符号来转义特殊的字符