redis 持久化之RDB与AOF

RDB 内存快照的方式

手动
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求职#
全部评论
牛哇  最好拿个项目试试 练练手
点赞 回复 分享
发布于 2022-02-15 19:27

相关推荐

评论
1
1
分享

创作者周榜

更多
牛客网
牛客企业服务