环境:虚拟机3主3从
准备工作:
向redis cluster写入100W条数据
public void multiSet() {
long start = System.currentTimeMillis();
//定义key对应的value
Consumer consumer = new Consumer();
consumer.setId(11111L);
consumer.setName("multiSet-consumer-");
consumer.setPhone("13011112222");
consumer.setBirthday(new Date());
byte[] trueValue = RedisSerializer.json().serialize(consumer);
//start
for (long k = 1; k <= 100; k++) {
long kk = k * 10000;
System.out.println(String.format("第【%s】次批量添加", k));
redisTemplate.executePipelined((RedisCallback<Object>) connection -> {
for (long x = kk - 9999; x <= kk; x++) {
String key = "multiSet-Key-" + x;
byte[] trueKey = RedisSerializer.string().serialize(key);
connection.set(trueKey, trueValue);
System.out.println("*****" + x + "*****");
}
return null;
});
}
long end = System.currentTimeMillis();
System.out.println(String.format("总计耗时:【%s】秒", (end - start) / 1000));
}
运行结果:
集群状态:
一、使用del xxx*
public void deleteOne() {
Boolean result = redisTemplate.delete("multiSet-Key-*");
System.out.println("***********" + result);
}
运行结果:
此方法无效,说明redis不支持del xxx*
二、使用keys方法拿出所有key,然后delete所有key
public void deleteTwo() {
Long result = redisTemplate.delete(redisTemplate.keys("multiSet-Key-*"));
System.out.println("***********" + result);
}
运行结果: