File tree 2 files changed +22
-2
lines changed
cs-basics/operating-system
2 files changed +22
-2
lines changed Original file line number Diff line number Diff line change @@ -355,6 +355,8 @@ Linux 系统是一个多用户多任务的分时操作系统,任何一个要
355
355
- ` ifconfig ` 或 ` ip ` :用于查看系统的网络接口信息,包括网络接口的 IP 地址、MAC 地址、状态等。
356
356
- ` netstat [选项] ` :用于查看系统的网络连接状态和网络统计信息,可以查看当前的网络连接情况、监听端口、网络协议等。
357
357
- ` ss [选项] ` :比 ` netstat ` 更好用,提供了更快速、更详细的网络连接信息。
358
+ - ` nload ` :` sar ` 和 ` nload ` 都可以监控网络流量,但` sar ` 的输出是文本形式的数据,不够直观。` nload ` 则是一个专门用于实时监控网络流量的工具,提供图形化的终端界面,更加直观。不过,` nload ` 不保存历史数据,所以它不适合用于长期趋势分析。并且,系统并没有默认安装它,需要手动安装。
359
+ - ` sudo hostnamectl set-hostname 新主机名 ` :更改主机名,并且重启后依然有效。` sudo hostname 新主机名 ` 也可以更改主机名。不过需要注意的是,使用 ` hostname ` 命令直接更改主机名只是临时生效,系统重启后会恢复为原来的主机名。
358
360
359
361
### 其他
360
362
Original file line number Diff line number Diff line change @@ -153,9 +153,27 @@ Redis 7.0 版本之后,AOF 重写机制得到了优化改进。下面这段内
153
153
154
154
### AOF 校验机制了解吗?
155
155
156
- AOF 校验机制是 Redis 在启动时对 AOF 文件进行检查,以判断文件是否完整,是否有损坏或者丢失的数据。这个机制的原理其实非常简单,就是通过使用一种叫做 ** 校验和(checksum) ** 的数字来验证 AOF 文件。这个校验和是通过对整个 AOF 文件内容进行 CRC64 算法计算得出的数字。如果文件内容发生了变化,那么校验和也会随之改变。因此,Redis 在启动时会比较计算出的校验和与文件末尾保存的校验和(计算的时候会把最后一行保存校验和的内容给忽略点),从而判断 AOF 文件是否完整。如果发现文件有问题, Redis 就会拒绝启动并提供相应的错误信息。AOF 校验机制十分简单有效,可以提高 Redis 数据的可靠性 。
156
+ 纯 AOF 模式下, Redis 不会对整个 AOF 文件使用校验和(如 CRC64),而是通过逐条解析文件中的命令来验证文件的有效性。如果解析过程中发现语法错误(如命令不完整、格式错误), Redis 会终止加载并报错,从而避免错误数据载入内存 。
157
157
158
- 类似地,RDB 文件也有类似的校验机制来保证 RDB 文件的正确性,这里就不重复进行介绍了。
158
+ 在 ** 混合持久化模式** (Redis 4.0 引入)下,AOF 文件由两部分组成:
159
+
160
+ - ** RDB 快照部分** :文件以固定的 ` REDIS ` 字符开头,存储某一时刻的内存数据快照,并在快照数据末尾附带一个 CRC64 校验和(位于 RDB 数据块尾部、AOF 增量部分之前)。
161
+ - ** AOF 增量部分** :紧随 RDB 快照部分之后,记录 RDB 快照生成后的增量写命令。这部分增量命令以 Redis 协议格式逐条记录,无整体或全局校验和。
162
+
163
+ RDB 文件结构的核心部分如下:
164
+
165
+ | ** 字段** | ** 解释** |
166
+ | ----------------- | ---------------------------------------------- |
167
+ | ` "REDIS" ` | 固定以该字符串开始 |
168
+ | ` RDB_VERSION ` | RDB 文件的版本号 |
169
+ | ` DB_NUM ` | Redis 数据库编号,指明数据需要存放到哪个数据库 |
170
+ | ` KEY_VALUE_PAIRS ` | Redis 中具体键值对的存储 |
171
+ | ` EOF ` | RDB 文件结束标志 |
172
+ | ` CHECK_SUM ` | 8 字节确保 RDB 完整性的校验和 |
173
+
174
+ Redis 启动并加载 AOF 文件时,首先会校验文件开头 RDB 快照部分的数据完整性,即计算该部分数据的 CRC64 校验和,并与紧随 RDB 数据之后、AOF 增量部分之前存储的 CRC64 校验和值进行比较。如果 CRC64 校验和不匹配,Redis 将拒绝启动并报告错误。
175
+
176
+ RDB 部分校验通过后,Redis 随后逐条解析 AOF 部分的增量命令。如果解析过程中出现错误(如不完整的命令或格式错误),Redis 会停止继续加载后续命令,并报告错误,但此时 Redis 已经成功加载了 RDB 快照部分的数据。
159
177
160
178
## Redis 4.0 对于持久化机制做了什么优化?
161
179
You can’t perform that action at this time.
0 commit comments