Redis 持久化的若干问题

Redis持久化的方式


Redis 提供了多种不同级别的持久化方式:

  1. RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照
  2. AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。Redis 还可以在后台对 AOF 文件进行重写(rewrite),使得 AOF 文件的体积不会超出保存数据集状态所需的实际大小
  3. Redis 还可以同时使用 AOF 持久化和 RDB 持久化。 在这种情况下, 当 Redis 重启时, 它会优先使用 AOF 文件来还原数据集

具体 RDB 持久化的配置方式


具体 AOF 持久化的配置方式


RDB 持久化的优缺点


采用 RDB 持久化的方式有三个优点:

  1. 它保存了 Redis 在某个时间点上的数据集,这种文件非常适合用于进行备份:你可以在最近的24小时内,每小时备份一次 RDB 文件,并且在每个月的每一天,也备份一个 RDB 文件
  2. RDB 可以最大化 Redis 的性能:父进程在保存 RDB 文件时唯一要做的就是 fork 出一个子进程,然后这个子进程就会处理接下来的所有保存工作
  3. RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快

采用 RDB 持久化的方式有以下缺点:

  1. 每次保存 RDB 的时候,Redis 都要 fork() 出一个子进程,并由子进程来进行实际的持久化工作。 在数据集比较庞大时, fork() 可能会非常耗时,造成服务器在某某毫秒内停止处理客户端; 如果数据集非常巨大,并且 CPU 时间非常紧张的话,那么这种停止时间甚至可能会长达整整一秒。

AOF 持久化的优缺点


如何选择 RDB 和 AOF


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章