//批量获取匹配的所有的key
public Set<String> getScan(String key, Integer count) {
Jedis jedis = getJedisObject();
Set<String> sets = new HashSet<>();
ScanParams params = new ScanParams();
params.match(key);
params.count(count);
String cursor = "0";
while (true) {
ScanResult scanResult = jedis.scan(cursor, params);
List<String> elements = scanResult.getResult();
if (elements != null && elements.size() > 0) {
sets.addAll(elements);
}
cursor = scanResult.getStringCursor();
if ("0".equals(cursor)) {
break;
}
}
returnJedis(jedis);
return sets;
}
//删除 批量key
public boolean delLargeHashKey(String key, Integer count) {
Jedis jedis = getJedisObject();
try {
Set<String> sets = getScan(key, count);
if (sets != null && sets.size() > 0) {
for (String keyt : sets) {
//删除
jedis.del(keyt);
}
return true;
}
return false;
} catch (JedisException e) {
if (jedis != null) {
returnJedis(jedis);
}
return false;
} finally {
if (jedis != null) {
returnJedis(jedis);
}
}
}
//调用
boolean bol = RedisPool.getInstance().STRINGS.delLargeHashKey(API_JUST_HISTORY+"*",500);