美文网首页
缓存架构

缓存架构

作者: 随手点灯 | 来源:发表于2020-03-09 17:09 被阅读0次

缓存是性能优化的杀手锏.在处理高并发的情况下,大量的请求造成巨大的压力,数据库的数据是存入磁盘的,对磁盘的读写造成性能的瓶颈,而缓存是存在内存当中的,可以直接读取,减少I/O操作和阻塞,大大提升性能.

01 缓存的分类

缓存分为两种,通读缓存和旁路缓存.

通读缓存就是应用程序去缓存中读取,如果缓存中有数据直接返回,如果没有数据直接去数据源中读取数据并写入到通读缓存中,常见的CDN缓存和反向代理缓存就是通读缓存.

image.png

CDN就是我们在访问互联网的时候,首先需要经过运营商的机房,部署在运营商机房当中,并且缓存了静态资源的服务器就是CDN.这些机房通常就在用户周围,所以速度非常快,动态资源还是要去服务器获取,实现了动静分离.

image.png

反向代理缓存,反向代理就是代理服务器的,当用户需要访问缓存信息,反向代理缓存如果有,就直接返回,没有就去服务器中获取并且返回.

image.png

旁路缓存就是缓存中有就返回,没有就返回null,需要应用程序去数据库中读取获取之后写入,比如我们的redis缓存.


image.png

分布式缓存当中会有多台缓存服务器,如何知道要访问哪台服务器获取到缓存呢?

image.png

首先缓存会有一个key和value,我们需要知道分布式缓存的服务器的ip地址集群,在写入的时候,是通过对key获取到hash值,然后对服务器列表的长度取余,就知道存入哪台服务器了,同理读取的时候也是一样的.

缓存的优点

  1. 存入内存,减少读取磁盘的数据,减少I/O和阻塞,可以提高性能

  2. 是计算后的结果,直接读取,减少计算,把资源用到应该用的地方去

  3. 通过对象缓存减少数据库负载压力,通过CDN,反向代理缓存减少服务器的压力.

缓存的缺点

  1. 数据脏读的问题.

解决方法

  1. 过期失效,过一段时间后会失效,用的最多,比如淘宝卖家修改了信息,过几分钟才更新.

  2. 改变通知,就是修改数据库之后,通知去修改缓存

  3. 如果数据不是热点数据,写入缓存中就会被浪费,所以只能是热门数据写入缓存.

相关文章

  • iOS架构设计-URL缓存(上)

    iOS架构设计-URL缓存(上) iOS架构设计-URL缓存(上)

  • iOS架构设计-URL缓存(下)

    iOS架构设计-URL缓存(下) iOS架构设计-URL缓存(下)

  • 缓存常见问题这一篇就够了

    一、缓存架构 上图是之前项目的缓存架构,加了二个级别的缓存:进程内缓存、分布式缓存。 读操作的思路:判断该缓存是否...

  • 07 | 客户端缓存的分类和介绍

    BS 架构 页面缓存; 浏览器缓存; 移动互联网架构 APP 自身使用的缓存; 页面缓存 含义 页面自身对某些元素...

  • JMM - 内存模型

    1,CPU缓存架构 1)cpu缓存架构图image.png2)术语Cache Line:缓存行,又称slot通常6...

  • 架构师进阶实战随堂笔记十二

    场景十二:从电商架构演进看互联网高可用架构设计--数据缓存架构 分布式数据架构 缓存为王的世界,流量峰值比较明显,...

  • 05 | 从集群架构看缓存

    集群架构的缓存演进 架构一 所有的 Tomcat 实例访问同一个集中式缓存; 架构二 将 Tomcat 实例按业务...

  • iOS架构构/框架

    图片缓存 阅读时长统计 复杂页面架构 客户端架构 架构&框架 模块化 分层 解耦 降低代码的重合度 图片缓存 怎么...

  • 缓存架构

    缓存是性能优化的杀手锏.在处理高并发的情况下,大量的请求造成巨大的压力,数据库的数据是存入磁盘的,对磁盘的读写造成...

  • mybatis源码学习

    1. 先了解整体架构 架构总述 缓存一级缓存实现详解二级缓存实现详解缓存机制的设计与实现数据源与连接池事物管理 2...

网友评论

      本文标题:缓存架构

      本文链接:https://www.haomeiwen.com/subject/ubipdhtx.html