当前位置: 首页 > news >正文

对计算机中缓存的理解和使用Redis作为缓存

  • 使用Redis作为缓存
    • 缓存
      • 例子
      • 缓存的引入
    • Redis
      • 缓存的实现

使用Redis作为缓存

缓存

​什么是缓存,第一次接触这个东西是在考研学习408的时候,计算机组成原理里面学习到Cache缓存,用于降低由于内存和CPU的速度的差异带来的延迟。它是在CPU和内存之间再添上一层,速度快于内存,把最近或者最常用的数据放到缓存中,这样可以大大提高cpu的性能。

例子

​其实这个思想在我们日常生活中也处处有体现,譬如在书桌上工作学习的时候,如果把桌子上坐着的我们比作CPU的话,那么书桌上的范围就是缓存,而书房里其它的位置就是内存。因为我们肯定会把最近使用或者最常使用的东西(数据)放在书桌上的手边,这样有利于我们处理数据,而不是每次需要一个常用的东西就从书架上或者柜子里取,用完了再放回去,需要用了又去取,这样会浪费很多时间。

缓存的引入

​我们进入电商网站后需要返回商户信息,但是每次获取商户信息都是去访问数据库,数据库的数据是存储在外存也就是硬盘上的,每次去读取都要进行IO操作很浪费时间。商户信息又是经常访问的数据,这就恰好满足我们需要一个缓存来提高性能的要求。

Redis

​而Redis作为非结构型数据库,它的数据是保存在内存中的,读写速度很快。下面是计算机三种存储介质的速度:

  • CPU:响应速度20-40ns,存储空间1-32MB;
  • 内存:响应速度100ns,存储空间一般在16G-128GB之间;
  • 磁盘:响应速度3-5ms,存储空间可达到4TB。

​ 从中可以看出来,用Redis作为缓存是一个很好的选择。

缓存的实现

客户端在获取数据的时候,不会直接访问数据库,而是先去访问Redis缓存,看看Redis中是否有想要的数据,如果有就从Redis中获取并直接返回,如果没有才会再去数据库中获取并保存到缓存中,以便下次使用,这与CPU和Cache缓存之间的思路是一样的。下面两张图分别对应缓存命中和缓存不命中的情况,可以看到,添加了缓存之后,将常用数据保存到Redis中,确实可以让数据的获取多次从内存中获取而不是硬盘中,提高了不少性能。
在这里插入图片描述

http://www.dtcms.com/a/31759.html

相关文章:

  • dockerfile 使用环境变量
  • 【Java高级篇】——第16篇:高性能Java应用优化与调优
  • 当 OpenAI 不再 open,DeepSeek 如何掀起 AI 开源革命?
  • 装箱和拆箱是什么?(C#)
  • 关于Java 反射的简单易懂的介绍
  • 一文熟练掌握Spring Framework
  • 以初学者视角探索智能体学习之旅
  • 新书上线 |《零门槛AIGC应用实战——Serverless+AI 轻松玩转高频AIGC场景》免费下载
  • upload-labs靶场
  • Spring Boot中整合Flink CDC 数据库变更监听器来实现对MySQL数据库
  • 【Python爬虫(48)】分布式爬虫:解锁多领域数据宝藏的密码
  • java Web
  • 宠物智能可穿戴产品调研报告
  • Microsoft Office 2024 软件安装教程(免费)
  • 前端八股——Vue3系列
  • Codeforces 559C 详细题解
  • 深入解析C++函数指针与指针函数:从原理到实战
  • 无法打开包括文件: “crtdbg.h”: No such file or directory
  • 【Blender】二、建模篇--06,曲线建模/父子级和蒙皮修改器
  • 《CentOS 7 镜像源失效终极解决方案(2024年更新)》——生命周期终止后的镜像修复与替代方案
  • Linux编程----filelo(2)
  • 【大模型LLM】DeepSeek LLM Scaling Open-Source Language Models with Longtermism
  • pandas Dataframe介绍以及创建
  • 使用 Python 调用 Ollama API 并调用 deepseek-r1:8b 模型
  • 【量化科普】Liquidity,流动性
  • 鸟语林-论坛系统自动化测试
  • 【网络安全 | 漏洞挖掘】账户接管+PII+原漏洞绕过
  • 【语音科学计算器】当前汇率
  • Python简单使用MinerU
  • 学习Linux准备2