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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM