实际业务场景:

现需求要将多个KEY的set集合数据合并到一个总集合中,思路:通过scan分批扫描满足条件的KEY,然后用sunionstore分批合并。

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

注意闭坑:此种解决方案只适用于待合并的集合KEY较多,但所有集合存储的总数据量不大的情况,sunionstore的复杂度为O(N),若合并的数据量较大,同样会造成REDIS长时间阻塞,与KEYS命令无异

主逻辑线程:

REDIS scan与sunionstore合并多集合数据 Nosql 第1张

SACN方法:

 REDIS scan与sunionstore合并多集合数据 Nosql 第2张

SUNIONSTORE方法

REDIS scan与sunionstore合并多集合数据 Nosql 第3张

模式匹配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。
同时,可以使用“/”符号来转义特殊的字符

REDIS scan与sunionstore合并多集合数据 Nosql 第4张

REDIS scan与sunionstore合并多集合数据 Nosql 第5张

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄