From d5b2b3a9055bd6a2606d9ccd4c6757394473c56f Mon Sep 17 00:00:00 2001 From: boni Date: Thu, 6 Sep 2018 16:44:48 +0800 Subject: [PATCH] #fix:修复L1级cache使用@CacheEvict(allEntries = true)不生效的bug --- src/main/java/com/irrigation/icl/cache/core/LayeringCache.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) 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()); -- libgit2 0.21.4