在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 多個成員用空格隔開