- 博客(7)
- 资源 (8)
- 问答 (1)
- 收藏
- 关注
原创 设计模式学习笔记(开篇)-抽象工厂 工厂模式 简单工厂(2)
继续上篇 设计模式学习笔记(开篇)-抽象工厂 工厂模式 简单工厂(1) 继续说。 上篇讲到了简单工厂模式。简述了它的实现、作用、优点、缺点。同时留下了一个问题。在SimpleFactory这个工厂类中,简单的实现工具的选择是不复杂的,但是当我们加入的产地选择的适合,SimpleFactory的代码量几乎成倍增长,会出现大量的if else。这对于SimpleFactory的维护者(开发者)来说,...
2018-12-31 08:36:34 196
原创 设计模式学习笔记(开篇)-抽象工厂 工厂模式 简单工厂(1)
之前,我一直对设计模式有很多不理解,就像简单工厂和工厂模式有什么区别,代理模式/面模式/适配器模式/装饰器模式等都是通过组合包装另一个类。他们之间又什么区别。我甚至认为这就是一个实现方式。同时,继承和装饰器模式都能为一个类添加新的动能,它们之间又有什么不一样。为了搞懂这些问题。我特地去重新学习了设计模式。这里,我学习的书籍是《Head First设计模式(中文版)》 和 《Gof设计模式》 《H...
2018-12-30 08:49:31 236
原创 HTTP缓存机制
HTTP缓存,换句话说就是,服务器告诉浏览器,你可以缓存我输出的内容,下次再访问相同内容时,就不用向我拿数据了。而浏览器则是个乖小孩。根据HTTP响应,将获取的内容存储到自己指定的文件夹目录下。下次有人再访问相同URL时。先去查找自己目录下是否有这个URL的内容,有没有过期。有这个URL内容且没有过期。直接输出的页面。 HTTP缓存主要有两中方式: 1. 对比缓存 对比缓存,虽然浏览器...
2018-12-22 09:45:34 155
翻译 常用缓存淘汰算法原理
下面所写属于自己的理解,正确性不保证 缓存组件(memcached,redis等)一般都会设置缓存的内存容量(max memory),即所有键值对占内存的总和(不包括软件运行所需的内存)。当内存占用率达到 max memory 设置定的界限时(可能是80%),缓存组件则会执行用户设定的淘汰算法,淘汰旧数据,直到有足够的空闲内存,去存储新的键值对。 下面常用的淘汰算法: 1.LRU 最近最少...
2018-12-22 08:26:35 865
原创 我所知道的缓存知识--缓存需要考虑的问题及解决办法
缓存中需要注意以下问题: 1. 热点数据 热点数据的特点就是,请求量大,机器的负载高。缓存失效时造成缓存穿透从而可能出现雪崩 解决的方法可以是: a.部署更多的从缓存,将请求负载到不同的从缓存中 b.客户端/代理端存储一份热点数据。 c.设置不过期缓存(可能造成数据不一致) 补充: d.一个通用的解决思路是,就是在cache的client端做...
2018-12-15 10:28:47 482
原创 我所知道的缓存知识--Cache-Aside && Cache-As-SoR
本章主要内容: Cache-Aside && Cache-As-SoR 介绍 Cache-Aside的使用需要考虑的问题 那么如何保证数据库和缓存的原子新 那些数据适合淘汰,那些数据适合更新 1. Cache-Aside:该模式对缓存的关注点主要是在与业务方。即缓存的更新,删除与数据库的操作,以...
2018-12-15 07:56:56 2088
原创 我所知道的缓存知识
在web开发,特别是高并发,用户量大的网站,缓存是非常重要的部分,缓存的目的就是降低后端服务器的压力,使系统能更健壮的运行,提供更好的服务。下面是我知道的缓存要点。 1.多级缓存 多级缓存包括: CND:内容网络分发 浏览器缓存 接入层缓存:负载均衡层() 应用层缓存:Tomcat/Apache/Nginx等 分布式缓存:redis/M...
2018-12-01 08:33:40 381
LessCss.js
2016-02-16
atomic.AddInt64 生成了重复ID
2023-03-28
mysql 执行顺序 为啥能保证每个mach_id 只选择两条数据
2017-06-20
TA创建的收藏夹 TA关注的收藏夹
TA关注的人