This commit is contained in:
罗祥
2019-12-13 17:38:01 +08:00
parent 8315420e47
commit 0ca51dabd8
4 changed files with 34 additions and 44 deletions

View File

@ -45,9 +45,9 @@ RDB 机制是以指定的时间间隔将 Redis 中的数据生成快照并保存
RDB 文件默认保存在 Redis 的工作目录下,默认文件名为 `dump.rdb`,可以通过静态或动态方式修改:
+ 静态配置:通过修改 `redis.conf` 中的工作目录`dir`和数据库存储文件名`dbfilename`两个配置
+ 静态配置:通过修改 `redis.conf` 中的工作目录`dir`和数据库存储文件名`dbfilename`两个配置
+ 动态修改:通过在命令行中执行以下命令
+ 动态修改:通过在命令行中执行以下命令
```shell
config set dir{newDir}
@ -56,7 +56,7 @@ RDB 文件默认保存在 Redis 的工作目录下,默认文件名为 `dump.rd
**2. 压缩算法**
Redis 默认采用 LZF 算法对生成的 RDB 文件做压缩处理, 这样可以减少占用空间和网络传输的数据量,但是压缩过程会耗费 CPU 的计算资源, 你可以按照你的实际情况,选择是否启用。可以通过修改 `redis.conf` 中的`rdbcompression `配置或使用以下命令来进行动态修改:
Redis 默认采用 LZF 算法对生成的 RDB 文件做压缩处理, 这样可以减少占用空间和网络传输的数据量,但是压缩过程会耗费 CPU 的计算资源, 你可以按照实际情况,选择是否启用。可以通过修改 `redis.conf` 中的`rdbcompression `配置或使用以下命令来进行动态修改:
```shell
config set rdbcompression{yes|no}
@ -64,7 +64,7 @@ config set rdbcompression{yes|no}
## 三、AOF 机制
AOF 是 Redis 提供的另外一种持久化的方式,它以独立日志的方式记录每次写命令,重启时再重新执行 AOF 文件中的命令,从而达到恢复数据的命令。
AOF 是 Redis 提供的另外一种持久化的方式,它以独立日志的方式记录每次写入操作,重启时再重新执行这些操作,从而达到恢复数据的命令。
### 3.1 执行原理
@ -82,7 +82,7 @@ Redis 提供了三种同步策略,用于控制 AOF 缓冲区同步数据到磁
write 和 fsync 操作说明:
- write 操作会触发延迟写机制Linux 在内核提供页缓冲区用来提高硬盘的 IO 性能write 操作在写入系统缓冲区后直接返回。同步操作依赖于系统调度机制, 例如:缓冲区页空间写满或达到特定时间周期。 同步文件之前, 如果此时系统故障宕机, 缓冲区内数据将丢失。
- write 操作会触发延迟写机制Linux 在内核提供页缓冲区用来提高硬盘的 IO 性能write 操作在写入系统缓冲区后直接返回。同步操作依赖于系统调度机制, 例如:缓冲区页空间写满或达到特定时间周期。 同步文件之前, 如果此时系统故障宕机,缓冲区内数据将丢失。
- fsync 针对单个文件操作做强制硬盘同步fsync 将阻塞直到写入硬盘完成后返回,保证了数据持久化。
Redis 默认的同步机制为`everysec`,此时能够兼顾性能和保证数据安全,在发生意外宕机的时,最多会丢失一秒的数据。
@ -103,7 +103,7 @@ Redis 默认的同步机制为`everysec`,此时能够兼顾性能和保证数
#### RDB 的缺点
- RDB 方式没办法做到数据的实时持久化,假设每次持久化的时间间隔是5分钟,当在上一次持久化后3分钟后发生了服务宕机,则这三分钟内的数据会全部丢失。
- RDB 方式没办法做到数据的实时持久化,假设每次持久化的时间间隔是 5 分钟,当在上一次持久化后 3 分钟后发生了服务宕机,则这三分钟内的数据会全部丢失。
- fork 操作是一个重量级的操作如果数据集很大Fork 操作可能会非常耗时。
#### AOF 的优点