侧边栏壁纸
博主头像
高大北博主等级

所有的再见中,我最喜欢明天见

  • 累计撰写 208 篇文章
  • 累计创建 151 个标签
  • 累计收到 20 条评论
标签搜索

目 录CONTENT

文章目录

精讲设计模式【装饰者设计模式】

高大北
2022-06-08 / 0 评论 / 1 点赞 / 291 阅读 / 394 字 / 正在检测是否收录...

回顾多级缓存基本概念

在实际开发项目,为了减少数据库的访问压力,我们都会将数据缓存到内存中
比如:Redis(分布式缓存)、EHCHE(JVM内置缓存).
例如在早起中,项目比较小可能不会使用Redis做为缓存,使用JVM内置的缓存框架,
项目比较大的时候开始采用Redis分布式缓存框架,这时候需要设计一级与二级缓存。

缓存机制

jvm 内置缓存(一级缓存):将缓存存到当前jvm中。缺陷:占用当前jvm内存当中 内存溢出问题,集群很难保证各个节点的数据一致性问题。 ehcache,osccahe(底层采用hashmap淘汰策略)

jvm内置缓存 hashmap手写
public class JvmMapCacheUtils {
    /**
     * 缓存容器
     */
    private static Map<String,String> caches=new ConcurrentHashMap<>();

    /**
     * 获取
     * @param key
     * @param t
     * @param <T>
     * @return
     */
    public <T> T  getEntity(String key,Class<T> t) {
        String s = caches.get(key);
        //将s 变为json
       return  JSONObject.parseObject(s,t);
    }
    /**
     * 存储
     * @param key
     * @param o
     */
    public void putEntity(String key, Object o){
        String o1 = JSONObject.toJSONString(o);
        caches.put(key,o1);
    }
}

redis缓存(二级缓存):共享缓存,

装饰模式基本的概念

不改变原有代码的基础之上,新增附加功能
1654655475144

装饰模式与代理模式的区别

代理模式对我们目标方法实现增强
装饰模式对我们装饰对象实现增强,不能改变原有代码。

1

评论区