redis 持久化之RDB与AOF
RDB 内存快照的方式
手动
save 命令,主进程阻塞,不能有修改操作访问
bgsave 命令,fork出一个子进程,fork期间主进程阻塞,,之后有COW,进行修改操作复制到副本中
自动
save m n m秒n个键发生变化,则触发持久化,通过bgsave
主从同步,全量同步时会自动触发bgsave命令
优点
速度快,数据重新恢复快
只包含一个dump.rdp文件,方便持久化
容灾性好,方便备份
性能最大化,通过fork子进程来完成写操作,主进程继续处理命令,实现IO最大化
缺点
数据安全性低,RDB是间隔一段时间进行持久化,如果发生故障,数据丢失严重
由于是fork子进程时会阻塞主进程,数据量很大时,会阻塞服务器较长时间,会占用CPU
save 命令,主进程阻塞,不能有修改操作访问
bgsave 命令,fork出一个子进程,fork期间主进程阻塞,,之后有COW,进行修改操作复制到副本中
自动
save m n m秒n个键发生变化,则触发持久化,通过bgsave
主从同步,全量同步时会自动触发bgsave命令
优点
速度快,数据重新恢复快
只包含一个dump.rdp文件,方便持久化
容灾性好,方便备份
性能最大化,通过fork子进程来完成写操作,主进程继续处理命令,实现IO最大化
缺点
数据安全性低,RDB是间隔一段时间进行持久化,如果发生故障,数据丢失严重
由于是fork子进程时会阻塞主进程,数据量很大时,会阻塞服务器较长时间,会占用CPU
AOF append追加修改命令日志文件方式
修改命令进行追加到AOF缓冲区,根据对应策略进行同步操作
策略:
每秒同步
每修改同步
不同步:由操作系统控制,可能丢失较多数据
优点
数据安全,最多只会有一条数据丢失
宕机也不会破坏已存在的内容,可以通过redis-check-aof工具解决数据一致性问题
AOF机制的rewrite模式,定期对AOF文件进行重写,以达到压缩的目的
当redis重启时,可以通过加载AOF文件进行数据恢复
缺点:
AOF文件比RDB文件大,且恢复速度慢
数据集大的时候,比RDB启动效率低
运行效率没有RDB高
#java求职#策略:
每秒同步
每修改同步
不同步:由操作系统控制,可能丢失较多数据
优点
数据安全,最多只会有一条数据丢失
宕机也不会破坏已存在的内容,可以通过redis-check-aof工具解决数据一致性问题
AOF机制的rewrite模式,定期对AOF文件进行重写,以达到压缩的目的
当redis重启时,可以通过加载AOF文件进行数据恢复
缺点:
AOF文件比RDB文件大,且恢复速度慢
数据集大的时候,比RDB启动效率低
运行效率没有RDB高