jedis本身删除keys时如果数据量比较大会造成redis堵塞,最好采用scan的方式查询并执行删除。
public class JedisOperateComponent {
private static final Logger LOGGER = LoggerFactory.getLogger(JedisOperateComponent.class);
//用来获取JedisCluster,可以自己实现
@Autowired
private RedisTemplate redisTemplate;
//线程池
@Autowired
private ThreadPool threadPool;
private List<Jedis> redisMasterList = new ArrayList<Jedis>();
private void initJedisList(int retryTimes){
LOGGER.error("initJedisList retry time:"+retryTimes);
redisMasterList.clear();
if(retryTimes > 1){
LOGGER.error("initJedisList retry 2 times, all is failed!");
return;
}
retryTimes++;
Map<String, JedisPool> clusterNodes = redisTemplate.getJedis().getClusterNodes();
boolean retry = false;
for (JedisPool pool : clusterNodes.values()){
Jedis jedis = null;
try{
je