提交 0600e1e0 编写于 作者: zhouweidong's avatar zhouweidong

同步缓存优化逻辑

上级 86d8be4c
...@@ -11,6 +11,7 @@ import java.util.Map; ...@@ -11,6 +11,7 @@ import java.util.Map;
import java.util.concurrent.Callable; import java.util.concurrent.Callable;
import cn.ibizlab.util.cache.listener.RedisPublisher; import cn.ibizlab.util.cache.listener.RedisPublisher;
import cn.ibizlab.util.enums.RedisChannelTopic; import cn.ibizlab.util.enums.RedisChannelTopic;
import org.springframework.util.ObjectUtils;
/** /**
* 缓存分层类 * 缓存分层类
...@@ -58,11 +59,16 @@ public class LayeringCache extends AbstractValueAdaptingCache { ...@@ -58,11 +59,16 @@ public class LayeringCache extends AbstractValueAdaptingCache {
@Override @Override
public ValueWrapper get(Object key) { public ValueWrapper get(Object key) {
ValueWrapper wrapper = caffeineCache.get(key); ValueWrapper wrapper = caffeineCache.get(key);
log.debug("查询一级缓存 key:{},value:{}", key,wrapper); Object value= ObjectUtils.isEmpty(wrapper)?null:wrapper.get();
if (wrapper == null) { log.debug("查询一级缓存 key:{} ,value:{}", key,value);
if (ObjectUtils.isEmpty(value)) {
wrapper = redisCache.get(key); wrapper = redisCache.get(key);
caffeineCache.put(key, wrapper == null ? null : wrapper.get()); value=ObjectUtils.isEmpty(wrapper)?null:wrapper.get();
log.debug("查询二级缓存,并将数据放到一级缓存。 key:{}", key); log.debug("查询二级缓存 key:{} ,value:{}", key,value);
if(!ObjectUtils.isEmpty(value)){
caffeineCache.put(key, value);
log.debug("查询二级缓存,并将数据放到一级缓存。 key:{} ,value:{}", key,value);
}
} }
return wrapper; return wrapper;
} }
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册