Redis模块一:缓存简介

目录

缓存的定义

应用

生活案例

程序中的缓存

缓存优点


缓存的定义

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

应用

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

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

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

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

生活案例

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

程序中的缓存

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

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

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

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

缓存优点

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

  1. 缓存⼀般都是 key-value 查询数据的,因为不像数据库⼀样还有查询的条件等因素,所以查询的性能⼀般会比数据库高;
  2. 缓存的数据是存储在内存中的,而数据库的数据是存储在磁盘中的,因为内存的操作性能远远大于磁盘,因此缓存的查询效率会高很多;
  3. 缓存更容易做分布式部署(将⼀台服务器变成多台相连的服务器集群),而数据库⼀般比较难实现分布式部署,因此缓存的负载和性能更容易平行扩展和增加。
相关推荐
chenglin01611 分钟前
ES_索引的操作
大数据·数据库·elasticsearch
共享家95271 小时前
MYSQL库及表的操作
数据库
想回家的一天3 小时前
Go1.25的源码分析-src/runtime/runtime1.go(GMP)
数据库·redis·缓存
阿里云大数据AI技术4 小时前
鹰角网络基于阿里云EMR Serverless StarRocks的实时分析工程实践
数据库·数据分析
久笙&4 小时前
对象存储解决方案:MinIO 的架构与代码实战
数据库·python·架构
码luffyliu5 小时前
MySQL:MVCC机制及其在Java秋招中的高频考点
java·数据库·mysql·事务·并发·mvcc
水涵幽树5 小时前
MySQL 时间筛选避坑指南:为什么格式化字符串比较会出错?
数据库·后端·sql·mysql·database
PythonicCC5 小时前
Django中的MVC和MVT模式
数据库·django·mvc
Mr. Cao code5 小时前
使用Tomcat Clustering和Redis Session Manager实现Session共享
java·linux·运维·redis·缓存·tomcat
AI 嗯啦8 小时前
SQL详细语法教程(七)核心优化
数据库·人工智能·sql