ThreadUtil.execute(() -> { try { Set<String> keys = new HashSet<>(); this.globalRedisTemplate.execute((RedisConnection connection) -> { Cursor<byte[]> cursor = connection.scan(ScanOptions.scanOptions().count(Integer.MAX_VALUE).match("*DeviceImport*").build()); cursor.forEachRemaining(item -> { //符合条件的key String keyDel = new String(item, StandardCharsets.UTF_8); keys.add(keyDel); if(CollUtil.isNotEmpty(keys) && keys.size() > 1000){ log.debug("清除设备入库临时媒体ID缓存 查询key达到1000,执行删除..."); globalRedisTemplate.delete(keys); keys.clear(); log.debug("清除设备入库临时媒体ID缓存 删除成功..."); } }); if(CollUtil.isNotEmpty(keys)){ log.debug("清除设备入库临时媒体ID缓存 查询到最后一批key:{},执行删除...",keys.size()); globalRedisTemplate.delete(keys); keys.clear(); log.debug("清除设备入库临时媒体ID缓存 删除最后一批成功..."); } log.debug("清除设备入库临时媒体ID缓存 finish..."); return null; }); } catch (Exception e) { log.error("清除设备入库临时媒体ID缓存异常:", e); } });
redis 根据前缀扫描删除
最新推荐文章于 2024-04-24 14:50:57 发布