第一章:基础理论篇:从架构看缓存演进与分类

1.1缓存的场景

定义:

缓存:最通用的解释就是可以进行高速数据交换的存储器。


image.png

缓存的分类

  • 硬盘缓存(机械硬盘)
  • CPU 缓存(以intel的CPU为例)


    image.png

CPU首先从L1一级缓存里面取数据,如果不存在则从二级缓存、三级缓存最终去内存中取数据。
L1d:数据缓存 L1i:指令缓存

缓存与内存的区别

image.png

我理解缓存和内存的概念不一样,缓存可以是所在主机部署,那么他就是在内存中,也可以独立部署,比如分布式缓存等等;

缓存淘汰策略

  • 先进先出策略(FIFO)
  • 最不经常使用的(LRU)
  • 最近最少用(LFU)

缓存使用场景

前提:我们的应用抗不住用户并发访问量时,才会考虑使用。

  • 将数据库的部分数据写入到缓存中;
  • 列表排序分页场景;
  • 计数器(限流)
  • 详情内容放在缓存;
  • 分布式session(用户权限、用户登录);
  • 热点数据的排名(最热的数据放在前面);
  • 发布订阅(小型的消息发布与订阅);
  • 分布式锁;

单体架构看缓存

何为单体架构

一个归档包(例如war格式或者Jar格式)包含了应用所有功能的应用程序,我们通常称之为单体应用。通过tomcat+db就可以完成;

单体架构与缓存

image.png

本地缓存与集中式缓存


image.png

1.2从架构看缓存

单体项目特点

  • 单体项目中模块众多
  • 模块之间紧耦合,不利于拆分
  • 扩展性差
  • 项目布署较复杂

集群架构

何为集群架构

对应于单机,一台机器忙不过来,在多台机器上面部署相同的代码,通过Nginx来负载均衡;
即:同一个业务,部署在多个服务器上 。

集群架构与缓存的关系

image.png

集群架构的特点

集群架构特点

  • 以单体项目为基础进行业务系统的划分
  • 系统之间存在数据冗余,系统耦合度较高
    优点:
  • 项目架构简单,开发成本低
  • 可以针对某一系统瓶颈进行适当扩展
  • 不同系统可以用不同的技术实现
    缺点:
  • 全部功能依然在一个系统中,后期难为维护
  • 集群扩展到一定程度就会产生瓶颈

微服务

微服务架构特点

  • 系统服务独立拆分
  • 微服务单一原则
    优点:
  • 服务拆分更细,服务可以重复使用
  • 可以针对某个服务做性能扩展和优化
  • 服务布署容易,业务之间互相影响较小,可以分别对不同服务做部署升级
    缺点:
  • 服务越来越多,不好管理
  • 服务需要不断增加故障监控、故障自愈、故障预警功能才能从众多服务中了解服务的健康状态

微服务核心点

微服务架构图

image.png

1.3缓存分类

1.3.1客户端缓存

页面缓存

  • 页面自身可以对某些元素或者全部元素进行缓存;
  • 服务端将静态页面或者动态页面进行缓存,供客户端使用;

浏览器缓存

image.png
  • 减少冗余数据传输;
  • 降低服务器的压力;

app缓存

  • 安卓缓存
  • IOS缓存

1.3.2服务端缓存

数据库缓存

  • 数据库为了优化性能的自身缓存框架;
  • MySql的查询缓存Query Cache
  • 双刃剑:
    • 数据库修改比较少,可以大幅度提升查询效率;
    • 数据库修改比较多,成为系统的负担,反而降低查询效率;

平台级缓存

平台级缓存:带有缓存功能的专用库,或者具有缓存特性的框架

  • Ehcashe
  • Jboss Cache
  • OS Cache
  • Guava Cache

不用Map的原因

  • 内存管理:内存类,没有对内存进行控制和管理;
  • 缓存过期策略
  • 容量规划
  • Map是否是线程安全
  • 持久化
  • 多实例数据同步及一致性

应用级缓存

  • redis
  • memcache


    image.png
  • CDN缓存
    内容分发网络
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,752评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,100评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,244评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,099评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,210评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,307评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,346评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,133评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,546评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,849评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,019评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,702评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,331评论 3 319
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,030评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,260评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,871评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,898评论 2 351

推荐阅读更多精彩内容

  • 微服务最近非常流行,各大互联网公司纷纷采用微服务架构体系,微服务架构模式正在为敏捷部署以及复杂企业应用实施提供巨大...
    Sting阅读 9,069评论 0 57
  • 转自:https://my.oschina.net/CraneHe/blog/703181 最近一直在关注关于微服...
    艾尔温阅读 2,681评论 0 52
  • 浩气展虹霓 人生一世总会有些不顺心的事,所以,我会选择走一走。总是喜欢戴着耳机,一个人散...
    知湫F阅读 107评论 0 2
  • /* 协议 1,自定义协议 2,添加方法 3,声明属性 4,在点击方法中调用 5,设置delegate属性,遵循协...
    吕谊在阅读 155评论 0 0
  • 都要十点了,他还未收摊。他车上红彤彤的糖心苹果,被路灯衬得格外的红,铁盆里的炭火已经要熄灭了,那剩下的一点火...
    一只特立独行的珠阅读 101评论 0 3