Redis模块一:缓存简介

目录

缓存的定义

应用

生活案例

程序中的缓存

缓存优点


缓存的定义

缓存是⼀个高速数据交换的存储器,使用它可以快速的访问和操作数据。

应用

1.CPU缓存:CPU缓存是位于CPU和内存之间的临时存储器,它的容量通常远小于内存,但它的访问速度更快。CPU缓存的主要目的是减少CPU从内存中获取数据的次数,从而提高计算机的性能。

2.Web浏览器缓存:Web浏览器缓存是指在计算机的硬盘上存储的网页数据副本,当用户再次访问相同的网页时,如果该网页的数据已经在缓存中,那么浏览器可以直接从缓存中读取数据,而不需要重新从网络上下载。

3.分布式缓存:分布式缓存是一种将数据缓存在多个服务器上,以提供更快的数据访问速度的技术。这种技术广泛应用于大型网络应用,如电子商务网站、社交网络和在线游戏等。

4.Redis:Redis是一种开源的键值对数据库,它通常被用作内存数据库,可以非常快速地存储和检索数据。Redis广泛应用于各种应用程序中,包括Web应用、实时消息系统、实时大数据分析等。

生活案例

当我们去超市购物时,我们可能会购买很多不同的商品。但是,我们不可能每次购买新商品时都去收银台付款。因此,超市的购物车起到了缓存的作用,允许我们在购物过程中暂时存储商品,直到我们准备好去付款。购物车的容量是有限的,类似于缓存的大小,而超市的货架则是内存,我们需要从货架上取出商品并放入购物车中,这类似于从内存中获取数据并存储到缓存中。当我们准备离开超市时,我们将购物车中的商品结账付款,这类似于将缓存中的数据写入磁盘或永久存储。

程序中的缓存

对于程序来说,当没有使用缓存时,程序的调用流程是这样的:

但随着业务的发展,公司的框架慢慢变成了多个程序调用一个数据库的情况了:

这是多部分公司的普遍的架构流程图,因此当公司业务发展到⼀定规模之后,最可能出现性能瓶颈的地方就是数据库。 数据库的资源同时也是程序中最昂贵的资源,因此为了防⽌数据库被过度的浪费,我们就需要给它雇⼀个"助理"了,这个助理就是缓存系统。加⼊缓存后,程序的交互流程如下图所示:

这样改造之后,所有的程序不会直接调用数据库,⽽是会先调用缓存,当缓存中有数据时会直接返回,当缓存中没有数据时才去查询数据库,这样就大大的降低了数据库的压力,并加速了程序的响应速度。

缓存优点

相比于数据库而言,缓存的操作性能更高,缓存性能高的主要原因有以下几个:

  1. 缓存⼀般都是 key-value 查询数据的,因为不像数据库⼀样还有查询的条件等因素,所以查询的性能⼀般会比数据库高;
  2. 缓存的数据是存储在内存中的,而数据库的数据是存储在磁盘中的,因为内存的操作性能远远大于磁盘,因此缓存的查询效率会高很多;
  3. 缓存更容易做分布式部署(将⼀台服务器变成多台相连的服务器集群),而数据库⼀般比较难实现分布式部署,因此缓存的负载和性能更容易平行扩展和增加。
相关推荐
Elastic 中国社区官方博客1 天前
在 Elasticsearch 中使用 Mistral Chat completions 进行上下文工程
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
编程爱好者熊浪1 天前
两次连接池泄露的BUG
java·数据库
cr7xin1 天前
缓存三大问题及解决方案
redis·后端·缓存
爱怪笑的小杰杰1 天前
浏览器端缓存地图请求:使用 IndexedDB + ajax-hook 提升地图加载速度
ajax·okhttp·缓存
TDengine (老段)1 天前
TDengine 字符串函数 CHAR 用户手册
java·大数据·数据库·物联网·时序数据库·tdengine·涛思数据
qq7422349841 天前
Python操作数据库之pyodbc
开发语言·数据库·python
姚远Oracle ACE1 天前
Oracle 如何计算 AWR 报告中的 Sessions 数量
数据库·oracle
Dxy12393102161 天前
MySQL的SUBSTRING函数详解与应用
数据库·mysql
码力引擎1 天前
【零基础学MySQL】第十二章:DCL详解
数据库·mysql·1024程序员节
杨云龙UP1 天前
【MySQL迁移】MySQL数据库迁移实战(利用mysqldump从Windows 5.7迁至Linux 8.0)
linux·运维·数据库·mysql·mssql