Redis模块一:缓存简介

目录

缓存的定义

应用

生活案例

程序中的缓存

缓存优点


缓存的定义

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

应用

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

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

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

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

生活案例

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

程序中的缓存

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

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

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

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

缓存优点

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

  1. 缓存⼀般都是 key-value 查询数据的,因为不像数据库⼀样还有查询的条件等因素,所以查询的性能⼀般会比数据库高;
  2. 缓存的数据是存储在内存中的,而数据库的数据是存储在磁盘中的,因为内存的操作性能远远大于磁盘,因此缓存的查询效率会高很多;
  3. 缓存更容易做分布式部署(将⼀台服务器变成多台相连的服务器集群),而数据库⼀般比较难实现分布式部署,因此缓存的负载和性能更容易平行扩展和增加。
相关推荐
科技小花6 小时前
全球化深水区,数据治理成为企业出海 “核心竞争力”
大数据·数据库·人工智能·数据治理·数据中台·全球化
X56617 小时前
如何在 Laravel 中正确保存嵌套动态表单数据(主服务与子服务)
jvm·数据库·python
虹科网络安全8 小时前
艾体宝干货|数据复制详解:类型、原理与适用场景
java·开发语言·数据库
2301_771717218 小时前
解决mysql报错:1406, Data too long for column
android·数据库·mysql
小江的记录本9 小时前
【Kafka核心】架构模型:Producer、Broker、Consumer、Consumer Group、Topic、Partition、Replica
java·数据库·分布式·后端·搜索引擎·架构·kafka
dvjr cloi9 小时前
MySQL Workbench菜单汉化为中文
android·数据库·mysql
dFObBIMmai9 小时前
MySQL主从同步中大事务导致的延迟_如何拆分大事务优化同步
jvm·数据库·python
szccyw09 小时前
mysql如何限制特定存储过程执行权限_MySQL存储过程安全访问
jvm·数据库·python
czlczl2002092510 小时前
利用“延迟关联”优化 MySQL 巨量数据的深分页查询
数据库·mysql
ACP广源盛1392462567310 小时前
IX8024与科学大模型的碰撞@ACP#筑牢科研 AI 算力高速枢纽分享
运维·服务器·网络·数据库·人工智能·嵌入式硬件·电脑