diff --git a/src/main/java/com/irrigation/icl/cache/core/LayeringCache.java b/src/main/java/com/irrigation/icl/cache/core/LayeringCache.java index 5085e7a..71360cd 100644 --- a/src/main/java/com/irrigation/icl/cache/core/LayeringCache.java +++ b/src/main/java/com/irrigation/icl/cache/core/LayeringCache.java @@ -116,13 +116,26 @@ public class LayeringCache extends RedisCache { return wrapper; } + @Override + public void clear() { + super.clear(); + if (layerL1Enable) { + Ehcache ehCache = getL1Cache(super.getName()); + ehCache.removeAll(); + layeringCacheManager.publishMessage(Command.rem(this.ID, super.getName())); + } + } + public void updateL1Cache(Command command) { if (layerL1Enable && command != null && !this.ID.equals(command.getSrc())) { switch (command.getOper()) { case Command.OPT_DEL: - case Command.OPT_REM: getL1Cache(command.getName()).remove(command.getKey()); - log.info("Clear Cache L1 {} - {}", command.getName(), command.getKey()); + log.info("Remove Cache L1 {} - {}", command.getName(), command.getKey()); + break; + case Command.OPT_REM: + getL1Cache(command.getName()).removeAll(); + log.info("Clear Cache L1 {}", command.getName()); break; case Command.OPT_SET: Cache.ValueWrapper wrapper = super.get(command.getKey());