Redis持久化⽅式

Redis持久化⽅式

类型 RDB AOF
描述 把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发 以独立日志的方式记录每次写命令, 重启时再重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。
优点 只有一个紧凑的二进制文件 dump.rdb,非常适合备份、全量复制的场景
2.容灾性好,可以把RDB文件拷贝道远程机器或者文件系统张,用于容灾恢复
3.恢复速度快,RDB恢复数据的速度远远快于AOF的方式
1.实时性好,aof 持久化可以配置 appendfsync 属性,有 always,每进行一次命令操作就记录到 aof 文件中一次
2.通过 append 模式写文件,即使中途服务器宕机,可以通过 redis-check-aof 工具解决数据一致性问题
缺点 1.实时性低,RDB 是间隔一段时间进行持久化,没法做到实时持久化/秒级持久化。如果在这一间隔事件发生故障,数据会丢失。
2.存在兼容问题,Redis演进过程存在多个格式的RDB版本,存在老版本Redis无法兼容新版本RDB的问题。
1.AOF 文件比 RDB 文件大,且 恢复速度慢。
2.数据集大 的时候,比 RDB 启动效率低

持久化方式选择

  • 一般来说, 如果想达到足以媲美数据库的 数据安全性,应该 同时使用两种持久化功能。在这种情况下,当 Redis 重启的时候会优先载入 AOF 文件来恢复原始的数据,因为在通常情况下 AOF 文件保存的数据集要比 RDB 文件保存的数据集要完整。
  • 如果 可以接受数分钟以内的数据丢失,那么可以 只使用 RDB 持久化。
  • 有很多用户都只使用 AOF 持久化,但并不推荐这种方式,因为定时生成 RDB 快照(snapshot)非常便于进行数据备份, 并且 RDB 恢复数据集的速度也要比 AOF 恢复的速度要快,除此之外,使用 RDB 还可以避免 AOF 程序的 bug。
  • 如果只需要数据在服务器运行的时候存在,也可以不使用任何持久化方式。
posted @ 2023-05-17 21:32  小朋友有很多问号  阅读(5)  评论(0编辑  收藏  举报