【架构师从入门到进阶】第七章:缓存和存储的优化思路——第一节:缓存概述

【架构师从入门到进阶】第七章:缓存和存储的优化思路------第一节:缓存概述

本篇文章我们来学习分布式缓存,这是属于我们应用服务器性能优化的一大块。

当我们的网站遇到性能瓶颈时,我们比较常用的一些解决方案中,还有一个非常重要的就是使用缓存。缓存在现在的互联网项目中,几乎无处不在。它既存在于浏览器中,也可以存在于网关中,也可以存在于负载均衡中,也可以存在于应用服务器,也可以存在于数据库当中。也就是说,几乎是方方面面都有缓存的身影。缓存既可以是对数据的缓存,也可以是对文件的缓存,也可以是对页面的缓存。合理的利用缓存对提升网站的性能意义重大。

我们通过f12,来看一下我们刚才所提到的浏览器的缓存。

大家可以看到,右侧的这些kv值,都是浏览器记录的一些缓存。

分布式缓存,它是一种导流的的方式。是指将原本对复杂操作的请求引导到简单的操作上,也就是说可以将查询较慢的数据引导到或者存储到较快的查询的介质中。

我们刚才说f12看到的浏览器中的这个缓存,它就是这个意思。比如说需要耗时很长的计算,或者说耗时很长的查询,我们可以把这种操作呢,把它引导到对缓存的操作中。查数据库可能得耗时很久,但是查缓存呢,就会很快。这就是我们所说的导流。

我们的缓存是一个用空间换时间的一个策略,牺牲了存储空间,它用来存储已经有的这么一些数据,把一些数据提前存储到缓存当中,在之后遇到同样的请求时,能通过缓存及时返回,就不需要去查询数据库。无需经过耗时的查询,节省用户的响应时间,单位时间内能处理的请求就越多,增大了系统的吞吐量。

此时所说的这种缓存,是广义的缓存,不要只把它理解成redis,memcache、local cache、Guava的一些工具,还有客户端的缓存,服务端的缓存等等都是可以的。

那么,缓存的基本原理,是将访问的数据存储在相对较高访问速度的存储介质中,这是它的核心原理。将要访问的数据存储在有着相对较高访问速度的存储介质中,以便于处理对应的数据时有较高的速度。

这里可以指两方面:

一方面指缓存访问的速度比较快,可以减少数据的查询速度,我们去数据库查一个数据是硬盘的lO操作很慢的,那么,我们把它放到缓存里比如说redis,那么内存的查询速度就会很快。

第二,如果说缓存的数据是经过复杂计算得到的,比如说我们要统计一下全国有多少符合条件的用户。那么发起这个请求之后,我们的程序就需要去后台统计一下,把符合条件的用户统计出来,然后再求一个和,这种计算量是非常大的,每次请求过来,每查询一次,耗时也非常久,那么我们提前让它把这个数计算出来,或者说在第一次请求查询的时候把它计算出来,然后把它放到缓存里,以后被类似的请求查询的时候,它就不需要去经过计算或者不需要去数据库查询,而是直接从缓存去查就可以了。这样的话,就能减少系统的计算成本,节省了资源的消耗,还能提高用户的响应时间。

相关推荐
iCxhust1 小时前
stm32f103c8t6 boot0设置
stm32·单片机·嵌入式硬件·1024程序员节
BullSmall1 小时前
开源 AI 赋能测试技术架构方案
1024程序员节
Jsundoku1 小时前
第六章 深度学习 -- 循环神经网络
人工智能·深度学习·循环神经网络·1024程序员节
子非鱼@Itfuture1 小时前
1024这天,我们聊聊AI
1024程序员节
夜雪一千1 小时前
Linux 查找文件 & 搜索内容介绍
1024程序员节
小弥儿1 小时前
GitHub今日热榜 | 2026-10-24:智能体安全攻防同日上榜
1024程序员节
John_Hui1 小时前
MySQL 进阶知识
数据库·sql·mysql·1024程序员节
yma161 小时前
从零搭建 P2P 聊天室:yma16.cloud 在线工具实战
前端·1024程序员节
小码哥(^_^)1 小时前
人力资源面试题集1
eclipse·1024程序员节