项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?

分析:

只要问到缓存,肯定是先问问你项目哪里用了缓存?为啥要用?不用行不行?如果用了以后可能会有什么不良的后果?

项目中缓存是如何使用的?

这个,需要结合自己项目的业务来。

为什么要用缓存?

用缓存,主要有两个用途:高性能、高并发。

高性能

假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作 mysql,半天查出来一个结果,耗时 600ms。但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用户。那么此时咋办?

缓存啊,折腾 600ms 查出来的结果,扔缓存里,一个 key 对应一个 value,下次再有人查,别走 mysql 折腾 600ms 了,直接从缓存里,通过一个 key 查出来一个 value,2ms 搞定。性能提升 300 倍。

就是说对于一些需要复杂操作耗时查出来的结果,且确定后面不怎么变化,但是有很多读请求,那么结果直接放在缓存,后面直接读缓存就好。

高并发

mysql 这么重的数据库,压根儿设计不是让你玩儿高并发的,虽然也可以玩儿,但是天然支持不好。mysql 单机支撑到 2000QPS 也开始容易报警了。

所以要是你有个系统,高峰期一秒钟过来的请求有 1万,那一个 mysql 单机绝对会死掉。你这个时候就只能上缓存,把很多数据放缓存,别放 mysql。缓存功能简单,说白了就是 key-value 式操作,单机支撑的并发量轻松一秒几万十几万,支撑高并发 so easy。单机承载并发量是 mysql 单机的几十倍。

缓存是走内存的,内存天然就支撑高并发。

用了缓存之后会有什么不良后果?

常见的缓存问题有以下几个:

缓存与数据库双写不一致

缓存雪崩、缓存穿透

缓存并发竞争

【问题1】项目中缓存是如何使用的?为什么要用缓存?相关推荐

  1. spring boot 注解_Spring-Boot项目中如何配置redis注解缓存?

    在pom中添加redis缓存支持依赖 <dependency><groupId>org.springframework.boot</groupId><arti ...

  2. 在项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果?

    项目中缓存是如何使用的? 这个,需要结合自己项目的业务来. 为什么要用缓存? 用缓存,主要有两个用途:高性能.高并发. 高性能 假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作 m ...

  3. 在项目中缓存是如何使用的?

    项目中缓存是如何使用的? 这个,需要结合自己项目的业务来. 为什么要用缓存? 用缓存,主要有两个用途:高性能.高并发. 高性能 假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作 m ...

  4. 在.Net项目中使用Redis作为缓存服务

    最近由于项目需要,在系统缓存服务部分上了redis,终于有机会在实际开发中玩一下,之前都是自己随便看看写写,很零碎也没沉淀下来什么,这次算是一个系统学习和实践过程的总结. 和Redis有关的基础知识 ...

  5. 项目中CI缓存适配器的使用

    2019独角兽企业重金招聘Python工程师标准>>> 项目中CI缓存适配器的使用     项目中有若干控制器,这些控制器有一些公共数据,因此,在基控制器类中获取这些数据,为了提高系 ...

  6. 谈谈MVC项目中的缓存功能设计的相关问题

    今天这一篇文章我来谈一谈在MVC 3项目中的缓存功能,以及针对缓存的一些设计上的考量,给大家参考参考 前言 为什么需要讨论缓存?缓存是一个中大型系统所必须考虑的问题.为了避免每次请求都去访问后台的资源 ...

  7. java 清理页面缓存数据_Web项目中,清理浏览器缓存的几种方式

    在B/S架构的项目中,访问web项目时,往往需要清理浏览器的缓存数据,js ,css 等等. //方法1:在引用的js ,css ,图片,等文件的url 处加一个变量,生成一个随机数字 //方法2:在 ...

  8. Vue项目中created生命周期重复执行,未缓存下来

    Vue项目中.vue文件的created函数进行路由切换时,执行了多次. 路由切换跳转时,发现一个页面的接口和页面展示每次进入都重新请求以及渲染,没有缓存下来,对比了一下的其它页面,并没有这个问题,所 ...

  9. 缓存三连问:项目中如何使用、为什么要使用、使用不当会造成什么后果?

    点击关注公众号,利用碎片时间学习 问题 项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? 分析 这个问题,互联网公司必问,要是一个人连缓存都不太清楚,那确实比较尴尬. 只要问到缓存 ...

  10. 实战派 | Java项目中玩转Redis6.0客户端缓存

    原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 哈喽大家好啊,我是Hydra. 在前面的文章中,我们介绍了Redis6.0中的新特性客户端缓存client-side caching,通过tel ...

最新文章

  1. 编译 ORB_SLAM2 (一)
  2. Java线程优先级的概念
  3. Dubbo 源码分析 - 集群容错之 Cluster
  4. Number With The Given Amount Of Divisors(反素数)
  5. jaxb 生成java类_重用生成的JAXB类
  6. springboot mongo查询固定字段_你真的会用索引么?[Mongo]
  7. jQuery 1.3 正式版发布
  8. 使用Facelets开发JSF程序
  9. GA遗传算法入门到掌握
  10. 文件分割合并类(java)
  11. 蚂蚁金服 SOFAArk 0.6.0 新特性介绍 | 模块化开发容器...
  12. C# WinForm捕获全局异常
  13. 单点登录原理及实现方式
  14. 数组公式和普通公式,差别在于思维方式的不同! 要用看数组的方式看待数据
  15. DIY回收,UCONN的开放源化学书以及更多新闻
  16. 从头开始绘制一个圆锥体
  17. 电路板元件符号及名称概述
  18. Pycharm 自制翻译扩展
  19. 2022中式烹调师(中级)操作证考试题模拟考试平台操作
  20. 五杆桁架matlab有限元分析,桁架结构及有限元分析matlab

热门文章

  1. java垃圾收集算法、标记-清除算法、复制算法、标记-整理清除、分代收集算法
  2. 单元测试框架TestableMock快速入门(五):复用Mock类与方法
  3. Spring Cloud Alibaba Sentinel之流控规则篇
  4. 【Hoxton.SR1版本】Spring Cloud Gateway之Predicate详解
  5. leetcode 两数之和 java版本
  6. JAVA中String类型的字符替换问题
  7. 关于建立内部会议讨论规范的想法
  8. 关于jvm的OutOfMemory:PermGen space异常的解决
  9. 安装phpmyadmin
  10. dede WAP 版 限制标题title的字数的方法