Update Redis_持久化.md

This commit is contained in:
heibaiying 2019-12-30 16:27:26 +08:00 committed by GitHub
parent 916e99a52c
commit 9fd9dd198a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -76,14 +76,14 @@ Redis 提供了三种同步策略,用于控制 AOF 缓冲区同步数据到磁
| 可选配置 | 说明 |
| -------- | ------------------------------------------------------------ |
| always | 命令写入 aof_buf 后就调系统 fsync 操作同步到 AOF 文件 |
| everysec | 命令写入 aof_buf 后就调用系统的 write 操作,但 fsync 同步文件的操作则由专门线程每秒调用一次 |
| no | 命令写入 aof_buf 后就调用系统的 write 操作,不对 AOF 文件做 fsync 同步同步操作由操作系统负责通常同步周期最长为30秒 |
| **always** | 命令写入 aof_buf 后就调系统 fsync 操作同步到 AOF 文件 |
| **everysec** | 命令写入 aof_buf 后就调用系统的 write 操作,但 fsync 同步文件的操作则由专门线程每秒调用一次 |
| **no** | 命令写入 aof_buf 后就调用系统的 write 操作,不对 AOF 文件做 fsync 同步同步操作由操作系统负责通常同步周期最长为30秒 |
write 和 fsync 操作说明:
- write 操作会触发延迟写机制Linux 在内核提供页缓冲区用来提高硬盘的 IO 性能write 操作在写入系统缓冲区后直接返回。同步操作依赖于系统调度机制, 例如缓冲区页空间写满或达到特定时间周期。 同步文件之前, 如果此时系统故障宕机,缓冲区内数据将丢失。
- fsync 针对单个文件操作做强制硬盘同步fsync 将阻塞直到写入硬盘完成后返回,保证了数据持久化。
- write 操作会触发延迟写机制Linux 在内核提供页缓冲区用来提高硬盘的 IO 性能write 操作在写入系统缓冲区后直接返回。同步操作依赖于系统调度机制,例如缓冲区页空间写满或达到特定时间周期。 同步文件之前,如果此时系统故障宕机,缓冲区内数据将丢失。
- fsync 针对单个文件操作做强制硬盘同步fsync 操作将阻塞直到写入硬盘完成后返回,保证了数据持久化的安全
Redis 默认的同步机制为`everysec`,此时能够兼顾性能和保证数据安全,在发生意外宕机的时,最多会丢失一秒的数据。
@ -118,7 +118,7 @@ Redis 默认的同步机制为`everysec`,此时能够兼顾性能和保证数
### 4.2 使用建议
按照 Redis 官方的推荐,为保证的数据安全性,可以同时使用这两种持久化机制,在 Redis 官方的长期计划里面,未来可能会将 AOF 和 RDB 统一为单一持久模型。需要注意的是,在这种情况下,当 Redis 重新启动时Redis 将使用 AOF 文件重建数据集,因为它可以保证数据的最少丢失。
按照 Redis 官方的推荐,为保证的数据安全性,可以同时使用这两种持久化机制,在 Redis 官方的长期计划里面,未来可能会将 AOF 和 RDB 统一为单一持久模型。需要注意的是,在这种情况下,当 Redis 重新启动时Redis 将使用 AOF 文件重建数据集,因为它可以保证数据的最少丢失。