redis持久化机制优缺点

Redis提供RDB和AOF两种持久化机制,两者可同时开启,优先使用AOF
RDB为默认机制,每隔固定时间将内存快照保存到硬盘中,采用子线程创建RDB文件,对性能无太大影响
优点

  • 数据量大时重启后恢复速度快
  • 单文件容灾型好,可以保存到安全的磁盘
  • 性能最大化,fork 子进程来完成写操作,主进程继续处理命令,是 IO 最大化

缺点

  • 数据安全性低,两个持久化之间的数据可能丢失,适合于数据要求不严谨的时候

AOF是将Redis每次写命令记录到单独的日志文件里,当文件过大时进行AOF命令重写
优点

  • 数据安全,可配置appendfsync 属性为always(不推荐,总是调用fsync同步文件,慢但是安全),每进行一次写操作就记录到文件中一次

缺点

  • 文件比较大,有AOF重写减小文件大小

    如何选择持久化机制

    一般来说同时开启,通常情况下,AOF的数据更完整,重启恢复也会优先使用AOF,如果可以接受几分钟内的数据丢失,则可以只使用RDB,不推荐只使用AOF,因为RDB有对应的优点,还可以避免某些命令使AOF产生BUG导致数据恢复不完整