缓存|学习笔记-阿里云开发者社区

开发者社区> 【开发者学堂】官方技术圈> 正文
登录阅读全文

缓存|学习笔记

简介: 快速学习缓存

开发者学堂课程【Java面试疑难点串讲2:缓存】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/25


缓存

 

1、缓存问题

对于整个电脑而言,它有一个自己的固定状态,如果要读取数据。

流程:将硬盘上的内容直接加载到内存里面,然后再通过内存进行读取。因为硬盘上所保存的都是物理上的二进制数据。

如果你的电脑只是你一个人在使用,那么没有任何的问题。这个时候,你会发现当人一多的时候,你的电脑就会变得跟蜗牛跑步一样。非常的慢。

如果只是你一个人在使用,那么慢一点感觉不到,可是如果换到了公网上,一堆的用户要进行数据读取的时候,现在的事情就出现了,所有的操作如果通过数据库查询得到(物理磁盘上),那么速度就会非常的慢,假如说一个查询需要60ms的时间,这个时间在人一多会呈指数倍增长。

所以有些人就开始想如何可以减少这种操作所带来的延迟时间的增长呢?

于是有人提出:我们不使用普通的硬盘全部换固态硬盘(速度可以提升,但是价格也提升)。固态硬盘不禁用。

如果我不是土豪,无法缩短内存与磁盘间的读取的延迟,那么这个时候怎么办?

那么唯一的解决方案是不读取硬盘上的内容。速度就会非常的快了。可是这种做法就有三种实现模式:CMS)直接使用内存作为缓存,也就是说将所读取出来的数据保存在内存里面(数据的失效问题)、使用缓存数据库(RediesMemcachedNoSQL数据库)。

而对于内存缓存而言,有两种常用的组件:oscache(是在页面上使用,例如:需要在某一个JSP页面之中缓存一个对象的时候使用)、ehcache(是在一些开发框架之中出现,例如:HibernateMybatisShiro)。

:缓存的本质=减少物理磁盘的读取时间(延迟取消了),直接读内存,还需要进行一些合理的内存管理。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:

阿里云开发者学堂,是开发者学习成长的一站式学习平台。平台源源不断的生产优质体系化课程、优质内容如电子书、直播、体验场景、训练营等,为开发者构建完善的学习成长体系,为开发者赋能。目前,开发者学堂包含数据库、大数据、云原生、AI、IoT等各大热门领域精品课,全部免费对开发者开放。

官方博客
最新文章
相关文章
官网链接