缓存|学习笔记

简介: 快速学习缓存

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

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


缓存

1、缓存问题

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

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

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

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

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

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

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

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

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

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

相关文章
|
小程序 JavaScript 开发者
|
数据采集 大数据 关系型数据库
如何使用 PHP 爬虫爬取大数据
**摘要:** 本文探讨了如何使用PHP爬虫处理大数据。从爬虫基本概念出发,讨论了PHP爬虫框架如Goutte和PHP-Crawler。在爬取大数据时,需明确目标网站、数据类型和量,编写爬虫程序,包括数据提取、反爬策略如设置User-Agent和访问频率控制。同时,采用并发处理(多线程)和分布式爬虫策略提升效率。最后,强调了合法合规使用爬虫技术的重要性。
|
存储 安全 数据安全/隐私保护
Harbor私有镜像仓库搭建
Harbor是由VMware开发的开源镜像仓库管理系统,具有以下一些主要特点和功能: 1.镜像管理 Harbor可以存储、管理镜像,支持访问控制、镜像复制、镜像删除等功能。 2.角色访问控制 可以创建用户和设置角色控制镜像的访问权限,例如只读或读写权限。 3.镜像复制 支持在多个Harbor实例之间复制镜像,保证分布式部署可以访问相同镜像。 4.镜像安全扫描 可以配置镜像安全扫描,检测镜像中的漏洞或风险。 5.镜像签名与信任 支持内容信任机制,确保镜像来源可信的同时保护镜像内容不被篡改。 6.策略管理 可以对用户访问、镜像复制和其他操作设置灵活的策略。
438 1
|
架构师 网络协议 Java
严禁外传!字节跳动2023春招Java岗位架构师面试题(暂定版)发布
说来说去废话也是那么多,今天小编实在是不想写前言了“原谅我一次”让我任性一回!
251 0
|
分布式计算 资源调度 Hadoop
查看Spark任务的详细信息
在学习Spark的过程中,查看任务的DAG、stage、task等详细信息是学习的重要手段,在此做个小结
514 0
查看Spark任务的详细信息
|
存储 缓存 Java
「计算机原理」| CPU 缓存 & 缓存一致性 & 伪共享
「计算机原理」| CPU 缓存 & 缓存一致性 & 伪共享
1072 0
「计算机原理」| CPU 缓存 & 缓存一致性 & 伪共享
|
Scala
spinal HDL - 11 - 使用状态机语法编写“1001“序列检测
spinal HDL - 11 - 使用状态机语法编写“1001“序列检测
690 0
spinal HDL - 11 - 使用状态机语法编写“1001“序列检测
|
安全 网络协议 Linux
基于Metasploit完成Samba服务漏洞复现
基于Metasploit完成Samba服务漏洞复现
基于Metasploit完成Samba服务漏洞复现
|
关系型数据库 索引
ES中通过join类型字段构建父子关联
ES中通过join类型字段构建父子关联
646 0
ES中通过join类型字段构建父子关联
|
存储
FPGA-SDRAM设计学习(三)初始化、模式寄存器、激活和读命令
FPGA-SDRAM设计学习(三)初始化、模式寄存器、激活和读命令
505 0
FPGA-SDRAM设计学习(三)初始化、模式寄存器、激活和读命令