Redis sscan命令

在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 多个成员用空格隔开

posted on 2021-04-15 11:05  MaXianZhe  阅读(1234)  评论(0编辑  收藏  举报

导航