分层缓存之最终分布式缓存

分层缓存
一、缓存概念
1、概念
用于存储数据的硬件或软件的组成部分,以使得后续更快访问相应的数据,缓存中的数据肯呢个是提前计算好的结果、数据的副本等。
2、作用
缓存是分布式系统中的重要组建,主要解决高并发、大数据场景下热点数据访问的性能问题,提供高性能的数据快速访问。
3、原理
a、将数据写入读写速度最快的存储设备。
b、将数据缓存到离应用最近的地方。
c、将数据缓存到离客户最近的地方。
二、缓存分类
1、CDN缓存
a、概念
cdn缓存就是在浏览器和服务器间增加的一层缓存,通俗 点,就是当我们发送一个web请求 时,会先经过它一道手,然后它帮我们计算路径,去 哪得到这些东东(representations)的路径 短且快。这个是网站管理员部署的,所以他们也可以将大家经常访问的representations放在CDN 里,这样,就响应就更快了
b、场景
主要缓存静态资源,例如图片、html、视频等。
c、应用图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、反向代理缓存
a、基本介绍
反向代理位于应用服务器机房,处理所有对WEB服务器的请求。 如果用户请求的页面在代理服务器上有缓冲的话,代理服务器直接将缓冲内容发送给用户。如果没有缓冲则先向WEB服务器发出请求,取回数据,本地缓存后再发送给用户。通过降低向WEB服务器的请求数,从而降低了WEB服务器的负载
b、场景
主要做一些图片等静态资源的缓存,代表有Nginx。
c、nginx的反向代理缓存图解
1)缓存命中
在这里插入图片描述
2)缓存未命中
在这里插入图片描述
3、本地应用缓存
a、基本介绍
指的是在应用中的缓存组件,其最大的优点是应用和cache是在同一个进程内部,请求缓存非常快速,没有过多的网络开销等,在单应用不需要集群支持或者集群情况下各节点无需互相通知的场景下使用本地缓存较合适; 同时,它的缺点也是应为缓存跟应用程序耦合,多个应用程序无法直接的共享缓存,各应用或集群的各节点都需要维护自己的单独缓存,对内存是一种浪费。
b、缓存介质
1)硬盘缓存
将数据缓存到硬盘,读取时从硬盘读取,原理是直接读取本机文件,减少了网络传输消耗,比 通过网络读取数据库更快。适用于对速度要求不是很高,但需要大量缓存存储的场景。
2)内存缓存
直接将数据存储到本机内存中,通过程序直接维护缓存对象,是访问速度最快的方式。
c、编程中直接实现
1)应用场景
主要满足单机场景下的小数据量缓存需求,同时对缓存数据的变更,无需太敏感感知,如一 般 配置管理、基础静态数据等场景。
2)优点
能直接在heap区内读写,最快也最方便。
3)缺点
受heap区域影响,缓存的数据量非常有限;缓存时间受GC影响。
4、分布式缓存
a、基本介绍
指的是应用分离的缓存组建件或服务,其最大的优点是自身就是一个独立的应用,与本地应用 隔离,多个应用可直接的共享缓存。
b、应用场景
缓存经过复杂运算得出的数据;缓存存储系统中频繁访问的热点数据,减轻存储系统压力
c、接入方式
程序代码实现的中间层;独立部署的中间件,目前常用的中间件有Redis和Memcached
d、介绍分布式缓存常见的2大开源实现Memcached和Redis
1)Memcached
基本介绍
Memcached是一个高性能,分布式内存对象缓存系统,通过在内存里维护一个 统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以 及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从内存中读取,从 而大大提高读取速度。
特点
在这里插入图片描述
基本架构
在这里插入图片描述
缓存数据过期策略
LRU(最近最少使用)到期失效策略,在Memcached内存储数据项时,可以指定它在缓存的失效时间,默认为永久。当Memcached服务器用完分配的内时,失效的数据被首先替换,然后也是最近未使用的数据。
数据淘汰内部实现
懒淘汰机制:每次往缓存放入数据的时候,都会存一个时间,在读取 的时候要和设置的时间做TTL比较来判断是否过期
分布式集群实现
服务端并没有 “ 分布式 ” 功能。每个服务器都是完全独立和隔离的服务。 Memcached的分布式,是由客户端程序实现的
在这里插入图片描述
在这里插入图片描述
Redis
基本介绍
Redis是一个远程内存数据库(

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值