在redis中对于一个集合类,也就是除了string以外的list hash set zset这些集合类,如果里面的元素很多,此时调用del key命令就可能会阻塞很长时间
一个解决办法是多次删除,每次只删一部分。那么怎么才能多次删除呢?这里以set为例
1 先调用sscan方法,扫描出来
sadd setkeymxz a01 a02 a03 a04 a05 a05 b02 b03 b04 b05
sscan setkeymxz 0 MATCH a* COUNT 2
2
a02
我第一次尝试这个命令的时候,也很迷糊,怎么就返回一个a02呢,我的count是2啊。其实redis对于该命令作用顺序是先执行count,再从结果集中找模式匹配的解决
例如,先找出来四个结果,再从结果中匹配时a开头的
> sscan setkeymxz 0 MATCH a* count 4 6 a02 a03 > sscan setkeymxz 0 count 4 6 b02 a02 b04 a03
2 然后调用 SREM setkeymxz a01 a02 多个成员用空格隔开
原文:https://www.cnblogs.com/juniorMa/p/14661580.html