背景
最近接到需求,要删除ssdb中一个8000+w个member的zset。
该SSDB架构为双主模式+Keepalived构建的高可用。
处理时长要求在一天内完成。
相关SSDB-API
-
zrange:zrange name offset limit,根据下标索引区间 [offset, offset + limit) 获取 key-score 对, 下标从 0 开始. zrrange 是反向顺序获取.(注意! 本方法在 offset 越来越大时, 会越慢!)
-
zkeys:zkeys name key_start score_start score_end limit,列出 zset 中的 key 列表
-
zscan:zscan name key_start score_start score_end limit,列出 zset 中处于区间 (key_start+score_start, score_end] 的 key-score 列表. 如果 key_start 为空, 那么对应权重值大于或者等于 score_start 的 key 将被返回. 如果 key_start 不为空, 那么对应权重值大于 score_start 的 key, 或者大于 key_start 且对应权重值等于 score_start 的 key 将被返回.也就是说, 返回的 key 在 (key.score == score_start && key > key_start || key.score > score_start), 并且key.score <= score_end 区间. 先判断 score_start, score_end, 然后判断 key_start._,("", “”] 表示整个区