缓存的认识

简介: 缓存是架构设计中一个重要的手段。缓存的主要特点是技术比较简单,同时对性能提升的效果又很显著,所以缓存在很多业务场景中被使用到。

缓存是架构设计中一个重要的手段。缓存的主要特点是技术比较简单,同时对性能提升的效果又很显著,所以缓存在很多业务场景中被使用到。

特点

  • 技术简单,可以很容易被添加到现有系统应用中,无需复杂的架构技术
  • 有助于提高系统性能
  • 应用场景多。如CPU中的缓存、HTTP浏览器缓存、CDN缓存等等

主要类型

代理缓存

定义:是在应用程序一端的代理,缓存在客户端一端的,代理客户端访问互联网。

作用:互联网访问代理

例子:公司员工的网络请求都连接到公司网络的代理服务器,一员工电脑请求某服务器请求时,都是通过公司的网络代理服务器,且会有缓存存在,其他员工如果是同样的请求时,将有公司网络代理服务器缓存中的数据直接返回。

反向代理缓存

反向代理是代理数据中心输出,反向代理缓存则存在于系统数据中心的。

例子:用户通过互联网连接到数据中心的反向代理服务器上,再由反向代理服务器分发到具体的服务器,如果用户的请求一致,则直接是从反向代理服务器缓存中返回数据

CDN缓存

CDN是指用户请求的前端(与用户地址最靠近)为用户提供数据服务。

用户进行互联网访问的时候,需要通过互联网网络服务商提供的网络链接才能够连接到数据中心,那么网络服务商就可以在自己提供的网络服务的机房里进行一次缓存操作,提供一次缓存服务

对象缓存

分布式对象缓存是指对象缓存以一个分布式集群的方式对外提供服务,多个应用系统使用同一个分布式对象缓存提供的缓存服务

关键指标

缓存命中率,是判断缓存是否有效的关键指标(命中率=查询正确次数/总查询次数)

影响命中率三个因素:

  • 缓存键集合大小(缓存键数量越少,缓存的效率越高)
  • 缓存空间的大小(缓存空间越大,缓存的对象越多,命中率也越高)
  • 缓存的使用寿命(根据业务场景)

    • 被重用的可能性越高,缓存的时间应该越长
    • 缓存失效2种方法:超时失效(设置超时时间)、实时清除(用完就清除)

优势

  • 缓存数据来自内存,访问速度快,处理速度也会更快
  • 缓存存储的数据形态通常是最终的结果形体、减少资源消耗。即,缓存的数据即是我们需要的结果,而不是需要再次加工处理的结果
  • 一次写入多次读取,减少对数据库的使用,减少数据库磁盘或网络的负载压力

缓存注意事项

  • 数据频繁修改
  • 非热点数据,命中率低
  • 数据不一致,数据库数据和缓存中数据不一致
  • 缓存雪崩
目录
相关文章
|
6天前
|
缓存
你了解缓存吗?
你了解缓存吗?
你了解缓存吗?
|
6天前
|
缓存 算法 Java
|
6天前
|
缓存 算法 Java
|
6天前
|
缓存 算法 Java
|
11月前
|
存储 缓存 API
缓存 #23
缓存 #23
32 0
|
缓存 开发框架 NoSQL
7.4缓存
缓存是一个用来保存数据的区域,从缓存中读取数据要比从数据源读取数据的速度快很多。如果可以从缓存中获取要获取的数据则称之为“缓存命中”,多次请求命中的请求占全部请求的百分比叫做“命中率”,如果数据源中的数据保存到了缓存后,发生了变化则称之为“缓存数据不一致”
|
存储 缓存 NoSQL
聊聊缓存
拿破仑说:胜利属于坚持到最后的人。 而正巧,咱们今天就是要聊一个,关于怎么让系统在狂轰乱炸甚至泰山压顶的情况下,都屹立不倒并坚持到最后的话题:缓存。
147 0
|
存储 缓存 算法
聊聊缓存那些事
说到缓存,作为技术同学想必大家都不会陌生,平常工作中或多或少也用到过。但是要结构化的说清楚缓存到底是什么,怎么用,用了有问题怎么解,也不是一件简单的事。所以这篇文章也是站在服务端研发的视角,对自己过去经验的一些总结,希望对大家有哪怕一丁点的帮助,也就值得了。 本篇文章计划分为两个章节来写: ● 缓存基础篇:讲一下缓存的基本原理、特性等。 ● 缓存进阶篇:讲一下缓存的实战场景,疑难问题的解决方案等。
136 0
|
存储 缓存 JSON
缓存的注意点
设计缓存的考虑
|
缓存 中间件
你真的懂缓存使用么?
在业务开发中我们经常会使用缓存来减少服务的响应rt,提升服务性能。除了先读缓存-miss后读DB-再写缓存的套路外,其实还有其他很多套路,本文将从使用模式、对数据一致性要求等方面为大家解释其中的细节。一、缓存模式1.1 Cache-aside该模式就是上文中提到的,也是大家用的最多的模式1.业务先读缓存,如果命中直接返回      2如果未命中,业务加载db数据放入缓存,然后返回1.2 Read-
390 0