linux - 存储管理
1.了解硬件 -- 磁盘
硬盘有机械硬盘(HDD)和固态硬盘(SDD)
接下来,主要以机械磁盘为例(更具代表性,在linux系统层面,无论是机械磁盘还是固态硬盘,文件的读取和写入都iNode(索引节点)管理文件的元数据和实际数据块)
1.盘片(Platter) - 存储数据: 是硬盘的存储介质,通常由铝合金或玻璃材料制成,并且涂有一层薄薄的磁性材料。硬盘的每个盘片都是圆形的,并且水平堆叠在一起(多盘结构)。每个盘片的表面都有两面都能用来存储数据,顶部和底部都配有读写磁头。
2.磁道 (Track)- 数据的物理组织方式:是硬盘盘片表面的一圈圈同心圆,它们是数据存储的物理路径。每个盘片都被划分为多个磁道,这些磁道从盘片的内圈向外圈辐射排列。磁头在读取或写入数据时,会定位到特定的磁道。
3.扇区(Sector)- 数据存储的最小单位:是硬盘磁道上的最小数据存储单元。每个扇区通常包含 512 字节或 4KB 的数据。硬盘在每个磁道上将数据划分成多个扇区,所有的数据都是通过这些扇区进行管理和存储的。
4.磁头(Read/Write Head)- 读取和写入数据:是硬盘的关键部件,负责在盘片的表面读取和写入数据。硬盘通常每个盘片都有两个磁头(一个用于盘片的上面,另一个用于盘片的下面),这些磁头通过 悬臂臂(actuator arm) 安装在盘片上方或下方的轨道上。
5.主轴(Spindle)- 驱动磁盘旋转:是硬盘的旋转轴,用于支撑所有的盘片,并使它们按一定速度旋转。硬盘的盘片通过主轴连接在一起,并由主轴电机驱动旋转。硬盘的转速(通常以 RPM(每分钟转数)为单位)直接影响磁盘的性能。常见的转速有 5400 RPM、7200 RPM、10000 RPM 和 15000 RPM。转速越高,数据读取速度也越快。
6.磁头定位器 (Actuator) - 精确控制磁头的位置:是一种驱动机制,用于精确控制磁头在盘片上的位置。它通过一个电磁装置,移动磁头在盘片上方和下方的不同磁道之间。磁头定位器通常由一个 磁臂(actuator arm) 和一个 伺服电机(voice coil motor, VCM) 组成。
2.CHS寻址
CHS(Cylinder-Head-Sector) 寻址方式通过柱面(磁道)、磁头和扇区的组合来定位硬盘上的数据。
CHS 寻址方式的工作原理:
-
柱面(Cylinder):硬盘通常有多个盘片,每个盘片都有上面和下面两个磁头。一个柱面由相同位置的多个磁头组成。例如,如果硬盘有 4 个盘片,则每个柱面上会有 4 个磁道(一个磁头对应一个磁道)。
-
磁头(Head):每个盘片面上有一个磁头,磁头定位器(Actuator)控制磁头的位置。当需要访问某个特定的磁道时,磁头定位器将磁头移动到目标磁道。
-
扇区(Sector):每个磁道上被划分为若干个扇区,通常每个扇区的大小是 512 字节。扇区是数据的最小存储单元。
CHS 寻址的具体示例:
假设我们有一个硬盘,分成以下结构:
- 磁盘有 4 个磁盘面(即 4 个磁头)。
- 每个磁道上有 20 个扇区。
- 硬盘共有 200 个磁道。
在 CHS 寻址 下,如果我们需要访问第 5 个柱面、使用第 2 个磁头,并且访问第 10 个扇区,那么我们需要的参数就是:
- Cylinder:第 5 个柱面(第 5 个磁道组),表示硬盘中相同位置的所有磁头(例如,磁头 1, 磁头 2, ...)。
- Head:第 2 个磁头,指向第二个盘片。
- Sector:第 10 个扇区。
因此,C=5, H=2, S=10 对应于硬盘中的具体数据位置。
3.LBA寻址
CHS 寻址的局限性:
- 寻址空间有限:由于硬盘物理结构的限制,CHS 寻址方式能够支持的最大磁道数、磁头数和扇区数是有限的。例如,某些早期硬盘的 CHS 地址空间有限制,不能超出某个值(例如最大 1024 柱面,16 个磁头和 63 个扇区),这限制了硬盘的最大容量。
- 不适应大容量硬盘:随着硬盘容量的增加,CHS 寻址方式无法满足更大硬盘的寻址需求,因此它逐渐被 LBA(Logical Block Addressing) 取代。LBA 采用线性地址模式,不依赖于物理结构,支持更大的硬盘容量。
CHS 寻址方式的替代方式:
由于 CHS 寻址方式存在局限性,LBA(Logical Block Addressing) 寻址方式被广泛采用。LBA 使用单一的逻辑块编号来表示硬盘上的每个数据块,消除了柱面、磁头、扇区之间的物理结构映射,使得硬盘可以支持更大的存储容量。
我们可以将磁头进行编号(0.1.2.3......),将盘片想象成磁带的卷起来的样子,磁带是可以拉直,盘片我们虽然无法物理将其拉成直线,但是将其抽象成一条直线。多个盘片,可以根据磁头编号,依次将其排列。为了管理这条直线,可以用线性数组的形式将其管理,而每个数组的大小就是扇区的大小。
LBA(Logical Block Addressing,逻辑块寻址)是一种硬盘存储设备的数据寻址方式,它将硬盘的数据视为一个逻辑上的连续块,而不是依赖于物理位置(如柱面、磁道和扇区)。在LBA方式下,硬盘上的每个数据块都有一个唯一的逻辑地址(LBA),这一地址用于标识存储数据的物理位置。
主要特点:
- 逻辑地址:LBA采用的是一个单一的连续数字地址,这个地址从0开始,表示硬盘上的第一个数据块。
- 简化管理:LBA隐藏了磁盘的物理结构(柱面、磁道、扇区),操作系统和应用程序通过LBA进行存取,简化了磁盘管理和数据存取。
- 扇区为基本单位:LBA通常是以扇区为单位进行寻址,通常一个扇区为512字节。
工作原理:
在LBA寻址中,操作系统或应用程序通过LBA地址指定某个数据块,硬盘控制器则负责将逻辑地址转换为物理位置。硬盘内部有一个映射表,负责将LBA地址映射到具体的磁道和扇区。
优点:
- 透明性:用户和操作系统不需要关心硬盘的物理结构,LBA将硬盘视为一个大块存储区域。
- 简化操作:硬盘控制器负责管理物理结构的转换,简化了数据读写操作。
LBA方式常见于现代硬盘(HDD)和固态硬盘(SSD)中,是硬盘与操作系统之间最常用的数据寻址方式
照上图,如果我们想找第28888扇区在那个磁头的那个柱面
每个盘片有1w扇区:28888 / 10000 = 2 在2号磁头
每个盘片有20磁道:8888 % 20 = 8 第8磁道
每个磁道有500扇区:8888 / 20 = 444 第444扇区
通过LBA将磁盘抽象为很长的线性数组,以特定算法将(如上)将LBA转换为我们的CHS进行我们物理寻址。
4.文件系统
了解了硬件和寻址方式,那么这么大的物理内存,我们应该怎么管理呢,四个字“分而治之”。
假设我们有1T内存,我们如何管理呢。
4.1 分区
假设硬盘分为 C盘、D盘 和 E盘,具体的分区方式根据操作系统、用途、数据存储需求等因素而有所不同。下面是一种常见的分区方式:
1. C盘(系统盘)
- 大小:通常分配硬盘的前几十GB(例如:100GB - 200GB),以确保操作系统和基础应用有足够的空间。
- 内容:
- 操作系统:包括操作系统本身(如Windows、Linux等),操作系统的核心文件和系统目录(如Windows中的
C:\Windows
)。 - 系统文件:包括系统启动所需的引导加载程序(例如MBR/GPT分区表)和其他低级别的操作系统文件。
- 系统应用:包括操作系统自带的应用程序,如Windows自带的计算器、资源管理器、控制面板等。
- 注册表(Windows)或配置文件(Linux):操作系统的配置信息。
- 用户配置文件:如操作系统用户的桌面配置、默认文档位置等。
- 操作系统:包括操作系统本身(如Windows、Linux等),操作系统的核心文件和系统目录(如Windows中的
2. D盘(数据盘)
- 大小:可以分配硬盘的剩余空间的中间部分,假设大约500GB(可以根据需求调整)。
- 内容:
- 用户数据:包括所有用户生成的数据,如文档、图片、视频、音乐等。
- 应用程序数据:安装的第三方应用程序的支持文件、数据库文件、缓存文件等。比如,安装在D盘的软件可能会在该分区创建文件夹用于存储应用配置文件、用户数据、日志等。
- 游戏文件:如果用户在该盘安装游戏,游戏的数据和文件(例如安装包、游戏存档、DLC等)将存储在该分区中。
- 下载目录:通常会将浏览器下载的文件、临时安装包等存放在此分区。
3. E盘(备份盘或媒体文件盘)
- 大小:剩余空间的最后一部分,假设为300GB(可以根据需求调整)。
- 内容:
- 备份文件:包括操作系统的备份、个人文件的备份以及其他重要数据的备份文件。
- 媒体文件:包括大容量的文件,如视频、音频文件、图片库等。用户通常会将不常用但需要存档的文件存放在此分区。
- 镜像文件:操作系统或硬盘的镜像文件(例如系统恢复点、磁盘映像等)也可以存储在此分区。
4. 隐藏分区(或系统恢复分区)
- 大小:通常为几十GB(如30GB - 100GB),该分区通常会被操作系统隐藏,不会直接显示在资源管理器中。
- 内容:
- 操作系统恢复工具:存放系统恢复和重装所需的文件。Windows中通常会有一个恢复分区,其中包含Windows恢复环境(Windows RE)和一些系统修复工具。
- 制造商工具:一些厂商会预装特定的工具和恢复映像,用于恢复出厂设置。
5. 其他可能的分区
-
Linux系统分区(如果使用Linux):
- 在Linux中,操作系统通常会有多个分区,如:
/
(根分区):包含所有操作系统文件。/home
:存储用户文件和个人数据。swap
:交换分区,用于虚拟内存。/boot
:存储启动文件。
- 这些分区可以根据需要进行划分。
- 在Linux中,操作系统通常会有多个分区,如:
-
磁盘加密分区:
- 如果使用加密(例如BitLocker、LUKS等),可能会有专门的加密分区或加密管理区域,用于存储加密的操作系统文件或用户数据。
总结:
在1TB的硬盘上,操作系统通常会将硬盘分为多个分区(如C盘、D盘、E盘等),每个分区根据不同的使用场景包含不同的内容:
- C盘:操作系统和系统应用程序。
- D盘:用户数据和第三方应用程序的文件。
- E盘:备份文件、媒体文件等。
- 隐藏分区:系统恢复文件和工具。
硬盘的具体分区方式可以根据用户的需求(如数据管理、操作系统使用等)进行调整。
4.2 BLock group
每个区里面又有许多BLock group,在文件系统的设计中,block group(块组)是文件系统的一种管理单位,主要用于高效组织和存储文件数据。块组(block group)是由若干个数据块(data blocks)和一些辅助数据结构(如inode表、超块等)组成的逻辑单元,用于管理文件的存储、访问和文件元数据的维护。
超级块(Superblock)
- 存储整个文件系统的信息,比如文件系统的大小、块大小、文件系统的状态等。通常,超级块在整个文件系统中有多个副本。
块位图(Block Bitmap)
- 用于跟踪哪些数据块已被分配,哪些是空闲的。每个块组都有一个块位图,通过它,操作系统能够快速查找可用的空闲块。
inode位图(Inode Bitmap)
- 用于管理inode(索引节点)的分配情况。inode包含文件的元数据,如文件的所有者、权限、时间戳、数据块的位置等。
inode表(Inode Table)
- 该表存储了该块组中所有文件的inode。每个文件都有一个对应的inode,其中存储着该文件的所有信息,但不包括文件的名称。文件的名称通常在目录结构中管理。
数据块(Data Blocks)
- 实际存储文件内容的数据块。每个数据块通常是固定大小(如4KB),文件内容存储在这些数据块中。
目录表(Directory Block)
- 用于存储目录结构。一个目录文件实际上是一个特殊类型的文件,它的内容是指向文件或子目录的链接。目录文件也存储在数据块中,包含文件名和其对应的inode编号
如何通过Block Group管理文件?
每个块组的作用是管理一部分磁盘空间,并保持与该部分相关的文件系统信息。具体来说,通过以下方式来管理文件:
-
分配块:当文件被创建或扩展时,操作系统会查找块组中未被使用的空闲数据块。如果一个块组中的数据块已满,文件系统会尝试在其他块组中找到空闲块。
-
分配inode:每当创建新文件时,操作系统会为该文件分配一个inode。在EXT4文件系统中,inode表存储在每个块组内,每个块组有自己的inode表,记录了该组内所有文件的inode信息。
-
优化局部性:块组的设计能够优化数据的局部性。即,相关文件(尤其是同一目录下的文件)通常会被分配到同一个块组中,这有助于减少磁盘寻址时的开销,从而提高文件系统的性能。
-
块组内的分配与回收:当文件删除时,相应的inode和数据块会被回收到块组的空闲区。操作系统会更新块位图和inode位图,以反映最新的磁盘空间状态。
-
平衡使用:通过块组管理,操作系统能够确保硬盘各个区域的空间得到均匀使用,避免某些区域过度分配,而其他区域则没有被有效利用。这也有助于提升文件系统的性能和可扩展性。
举个例子:EXT4文件系统
假设有一个1TB的硬盘,分配了一个EXT4文件系统。EXT4文件系统会将硬盘分割成多个块组,每个块组可能包含数千个数据块、inode以及其它辅助信息(如块位图、inode位图等)。
- 如果一个文件被创建,它的inode会被分配到一个块组中的inode表,并且文件的内容会被存储在该块组中的数据块中。
- 当一个文件扩展时,新的数据块可能会被分配到当前块组的空闲区域,也有可能被分配到另一个块组,具体取决于磁盘的空闲空间状态。
- 当文件被删除,inode和数据块会被回收,重新标记为可用,供新文件使用。
优点和挑战:
优点:
- 局部性优化:通过将相关文件存储在同一块组中,能够减少磁盘寻址的开销,提高读写性能。
- 高效的空间管理:块组内的位图帮助操作系统快速判断哪些块和inode是空闲的,从而高效地分配磁盘空间。
- 容错性:文件系统在每个块组内保留多个副本(如超级块的副本),如果某个块组出现损坏,文件系统仍可以恢复。
挑战:
- 块组大小和分配策略:块组的大小设置对文件系统的性能有重要影响。如果块组太小,可能会增加管理开销;如果块组太大,可能会导致磁盘碎片和性能下降。
- 块组间的负载不均衡:如果某些块组使用过度而其他块组空闲,可能会导致文件系统的性能不均衡。
总结
在现代的文件系统中,块组(Block Group)是一种重要的管理单位,尤其在EXT4等文件系统中。它通过将硬盘分成多个块组,管理文件数据的存储、访问以及元数据的组织。每个块组包含数据块、inode表、位图等信息,从而实现高效的空间管理和文件访问。通过这种设计,文件系统能够优化磁盘的使用,提高性能,并减少磁盘碎片。
注:在linux中文件属性和文件是分开存储的
如何通过文件属性找到文件?
相关文章:
linux - 存储管理
1.了解硬件 -- 磁盘 硬盘有机械硬盘(HDD)和固态硬盘(SDD) 接下来,主要以机械磁盘为例(更具代表性,在linux系统层面,无论是机械磁盘还是固态硬盘,文件的读取和写入都iNode(索引节点)管理文件的元数据和实际数据块) 1.盘片&#x…...
在 Kibana 中为 Vega Sankey 可视化添加过滤功能
作者:来自 Elastic Tim Bosman 及 Miloš Mandić 有兴趣在 Kibana 中为 Vega 可视化添加交互式过滤器吗?了解如何利用 “kibanaAddFilter” 函数轻松创建动态且响应迅速的 Sankey 可视化。 在这篇博客中,我们将了解如何启用 Vega Sankey 可视…...
styled-components 库的用法介绍和实践总结
styled-components 库的实践用法总结 前言 前段时间开发了一个 NiceTab 浏览器插件,并写了一篇介绍文章,新开发了一款浏览器Tab管理插件,OneTab 的升级替代品, 欢迎品尝!。 在插件中用到了 styled-components 这个库,于是做一个基本的介绍和分享。 在开发 NiceTab 插件…...
SSE(Server-Sent Events)主动推送消息
说明 使用Java开发web应用,大多数时候我们提供的接口返回数据都是一次性完整返回。有些时候,我们也需要提供流式接口持续写出数据,以下提供一种简单的方式。 SSE(Server-Sent Events) SSE 是一种允许服务器单向发送事…...
pandas.core.frame.DataFrame怎么进行对象内容的读写
在 Python 中,pandas.core.frame.DataFrame 是 Pandas 数据库的核心数据结构,可以方便地读取和操作表格数据。以下是几种常见的读取内容的方法: 读取特定列 通过列名获取数据。 # 假设 df 是一个 DataFrame data df["列名"] # …...
短作业优先调度算法
一、实验目的 了解并掌握作业调度的功能,熟悉并掌握各种作业调度算法。 二、实验内容 模拟实现SJF调度。 设置作业体:作业名,作业的到达时间,服务时间,作业状态(W——等待,R——运行,F——完成)…...
SpringBoot 应用并发处理请求数的深入解析
SpringBoot 应用并发处理请求数的深入解析 一、引言 在现代Web开发中,了解一个应用程序可以同时处理多少个并发请求是至关重要的。 对于基于Spring Boot构建的应用程序来说,这个问题的答案并非绝对,而是取决于多个因素,包括但不…...
MetaGPT中的教程助手:TutorialAssistant
1. 提示词 COMMON_PROMPT """ You are now a seasoned technical professional in the field of the internet. We need you to write a technical tutorial with the topic "{topic}". """DIRECTORY_PROMPT (COMMON_PROMPT "…...
介绍一款docker ui 管理工具
http://vm01:18999/main.html 管理员登陆账号 jinghan/123456 ui启动命令所在文件夹目录 /work/docker/docker-ui 参考链接 DockerUI:一款功能强大的中文Docker可视化管理工具_docker ui-CSDN博客...
0022 基于SpringBoot的婚纱摄影线上预约系统的设计与实现
电子商城系统 1.项目描述2. 绪论2.1 研究背景2.2 目的及意义2.3 国内外研究现状 3.需求分析4.界面展示5.源码获取 1.项目描述 摘 要 本文旨在研究并开发一套基于Spring Boot框架的婚纱摄影线上预约系统,以满足现代婚纱摄影行业对高效、便捷、个性化服务的需求。该系…...
uni-app在image上绘制点位并回显
在 Uni-app 中绘制多边形可以通过使用 Canvas API 来实现。Uni-app 是一个使用 Vue.js 开发所有前端应用的框架,同时支持编译为 H5、小程序等多个平台。由于 Canvas 是 H5 和小程序中都支持的 API,所以通过 Canvas 绘制多边形是一个比较通用的方法。 1.…...
Comparator.comparing 排序注意
1. 对数字型字符串排序 List<String> values new ArrayList<>();values.add("10");values.add("6");values.add("20");values.add("30");values.add("50");//方法1 (正确的排序方法)//倒…...
PPO系列3 - PPO原理
On Policy: 采集数据的模型,和训练的模型,是同一个。缺点:慢,生成一批样本数据,训练一次,又要重新生成下一批。 Off Policy: 采集数据的模型,和训练的模型,不是同一个。有点…...
.idea
.idea/ 文件夹下的文件和目录主要用于存储 JetBrains IDE(如 PyCharm、IntelliJ IDEA 等)的项目配置。下面是一些常见文件和目录及其作用的详细介绍: 1. workspace.xml 用户界面布局:保存了IDE窗口布局,包括打开的文…...
单片机:实现呼吸灯(附带源码)
单片机实现呼吸灯详细解读 呼吸灯是一种常见的灯光效果,广泛应用于电子产品、汽车、家居照明等领域。其基本特性是通过逐渐增亮和减弱的方式,使得灯光呈现出“呼吸”的效果,给人一种平缓、舒适的视觉感受。在嵌入式系统中,呼吸灯…...
PostgreSQL数据库序列信息查询
PostgreSQL序列信息查询 说明: 在PostgreSQL数据库中序列和表都是序列的对象。 数据库中不应该存在孤儿序列,序列应该和表对应的字段绑定起来。绑定后删除表或表对应的字段后,序列会自动被删除。 创建测试表和序列 create table test_t(…...
【Linux】Nginx一个域名https一个地址配置多个项目【项目实战】
👨🎓博主简介 🏅CSDN博客专家 🏅云计算领域优质创作者 🏅华为云开发者社区专家博主 🏅阿里云开发者社区专家博主 💊交流社区:运维交流社区 欢迎大家的加入!…...
Linux驱动开发(12):中断子系统–按键中断实验
本章我们以按键为例讲解在驱动程序中如何使用中断, 在学习本章之前建议先回顾一下关于中断相关的裸机部分相关章节, 这里主要介绍在驱动中如何使用中断,对于中断的概念及GIC中断控制器相关内容不再进行讲解。 本章配套源码和设备树插件位于“…...
代码随想录-算法训练营-番外(图论02:岛屿数量,岛屿的最大面积)
day02 图论part02 今日任务:岛屿数量,岛屿的最大面积 都是一个模子套出来的 https://programmercarl.com/kamacoder/0099.岛屿的数量深搜.html#思路往日任务: day01 图论part01 今日任务:图论理论基础/所有可到达的路径 代码随想录图论视频部分还没更新 https://programmercar…...
20 go语言(golang) - gin框架安装及使用(一)
一、简介 Gin是一个用Go语言编写的高性能Web框架,专注于构建快速、可靠的HTTP服务。它以其速度和简洁性而闻名,非常适合用于开发RESTful API。 高性能:Gin使用了httprouter进行路由管理,这是一个轻量级且非常快速的HTTP请求路由器…...
重生之我在学Vue--第3天 Vue 3 模板语法与指令
重生之我在学Vue–第3天 Vue 3 模板语法与指令 文章目录 重生之我在学Vue--第3天 Vue 3 模板语法与指令前言一、数据绑定1.1 单向绑定1.2 双向绑定 二、常用指令2.1 v-bind2.2 v-model2.3 v-if2.4 v-show2.5 v-for2.6 v-on 三、事件处理与表单绑定3.1 事件处理3.2 表单绑定 前言…...
电脑win11家庭版升级专业版和企业版相关事项
我的是零刻ser9,自带win11家庭版,但是我有远程操控需求,想用windows系统自带的远程连接功能,所以需要升级为专业版。然后在系统激活页面通过更改序列号方式,淘宝几块钱买了个序列号升级成功专业版了。但是,…...
docker 架构详解
Docker架构是基于客户端-服务器(C/S)模式的,包含多个关键组件,以确保容器化应用的高效构建、管理和运行。以下是对Docker架构的详细解析: Docker 架构概述 Docker 架构采用客户端-服务器(C/S)…...
tinyCam Pro 用于远程监控,控制和录制您的私人公共网络或IP摄像机
tinyCam Pro 是一款用于远程监控,控制和录制您的私人/公共网络或IP摄像机,视频编码器和具有500万次下载的CCTV摄像头的DVR。需使用3G/4G/WiFi连接和下载数据。 tinyCam Monitor Pro 可用于远程安全地监控您的宝宝、宠物、家庭、商业、交通和天气…...
Flask 验证码自动生成
Flask 验证码自动生成 想必验证码大家都有所了解,但是可以自己定义图片验证码,包含数字,英文以及数字计算,自动生成验证码。 生成图片以及结果 from captcha.image import ImageCaptchafrom PIL import Image from random impo…...
vmpwn小总结
前言: 好久没有更新博客了,关于vm的学习也是断断续续的,只见识了几道题目,但是还是想总结一下,所谓vmpwn就是把出栈,进栈,寄存器,bss段等单独申请一块空闲实现相关的功能࿰…...
开源密码管理器 Bitwarden 一站式管理所有密码以及 2FA
本文首发于只抄博客,欢迎点击原文链接了解更多内容。 前言 随着注册的平台越来越多,管理密码的难度也越来越高了。要是把密码都设置成一样的,担心哪天某个平台泄露被一锅端,而每个平台单独一个密码又不太好记,这时候就…...
标准体重计算API集成指南
标准体重计算API集成指南 引言 在当今数字化和健康意识日益增长的时代,开发人员和健康管理专业人士不断寻找创新的方法来促进用户的健康生活。标准体重计算是一个关键的健康指标,它可以帮助个人了解自己的身体状况,并为制定合适的饮食和运动…...
多个终端查看的history不一样,如何确保多个终端会话之间的 history 一致,减少历史记录差异
问题: 在使用 Linux 系统时,history 命令显示的历史记录通常是与当前终端会话相关的。这就意味着,如果你在多个终端中打开会话,它们显示的历史记录可能不完全相同。这个问题通常是由以下原因引起的: 原因:…...
Spring Boot整合EasyExcel并行导出及Zip压缩下载
1. 项目依赖 首先,我们需要引入相关的依赖,包括 Spring Boot 和阿里巴巴的 EasyExcel 组件,此外还需要使用 Java 的 Zip 工具进行压缩操作。 <dependencies><!-- Spring Web --><dependency><groupId>org.springfr…...
城市建设灯具网站/微信裂变营销软件
案例1:本地操作通过php操作rediswindows本地进行应用首先保证自己的环境已经安装上了redis,新建一个PHP文件编写 phpinfo();执行这个文件,看下会不会有redis的服务如果没有 请在环境中的php的php版本的文件夹下的ext文件夹下放入一个 php_red…...
网站源码开发/日本网络ip地址域名
前言:今天开始开启一个新篇章的学习,那就是games101闫令琪老师讲的《现代计算机图形学入门》课程,我会根据闫老师每节课讲的内容记录重点笔记,每节课都会整理一篇发布出来,希望自己可以坚持下去,从图形学小…...
办理一个网站做英语教学/网站收录优化
select date_format(curdate(),%w) from dual;更多参考:MySQL中DATE_FORMAT(date, format)函数可根据format字符串格式化日期或日期和时间值date,返回结果串。也可用DATE_FORMAT( ) 来格式化DATE 或DATETIME 值,以便得到所希望的格式。根据fo…...
做网站需要几天/国际羽联最新排名
* 常见的 http请求头 请求头说明Accept-Charset用于指定客户端接受的字符集Accept-Encoding用于指定可接受的内容编码 e.g. Accept-Encoding: gzip,deflateAccept-Language用于指定一种自然语言, e.g. Accept-Language: zh-CNHost用于指定被请求资源的Internet主机和端口号, e.…...
oss如何做网站/刷关键词要刷大词吗
维普资讯72 ●化工设计●7 7操作型精馏塔计算‰(吉林化工学院13。2022) TE。口z一计算机对操作型精憎塔计算进行模拟t快速、简单、可靠-用实例进行计算 结果令人礴 有较好时应用价值煳 苎些 竹 鲤 l前 言 穗 ;在对操作型精馏塔计算过程中,由于存 进料状态…...
做游戏破解版的网站/北京疫情最新消息
Stats窗口 Stats窗口,全程叫做 Rendering Statistics Window , 即渲染数据统计窗口,它会实时统计数据。 FPS(Time per frame andFPS) frames per seconds 表示引擎处理和渲染一个游戏帧所花费的时间,该数字主要受到…...