Redis持久化知识点

Redis持久化知识点

rdb 和 aof 两种策略

rdb : redis batabase
aof : append-only file

rdb: 保存redis在某个时间点上的数据集, 适合备份 例如: 在最近的24小时内,每小时备份一次rdb 并且每月备份一个rdb; 便于还原数据到不同的版本
rdb适合灾难恢复,内容紧凑
rdb可以最大化redis性能: 在保存rdb的时候fork一个子进程,利用子进程去进行io操作.自己无需参与
rdb比aof恢复大数据的时候要快的多

aof: 通过不同的fsync来进行定义策略 例如: 无fsync 、每秒钟一次fsync、每次执行写入fsync.
默认是每秒钟一次,出现故障最多丢失一秒的数据.
aof是追加型日志文件, 即使变的很大的时候 apo会保证创建新的aof文件,创建成功后更换到新的aof继续追加,即使不小心干掉了整个索引 只需要将aof最后一行命令删除就可以继续工作

缺点: rdb 如果避免在服务故障的时候恢复数据,那使用aof会更好一些.因为故障会导致丢失上一个时间点到当前时间点之间的所有数据
rdb每次保存的时候都要fork一个子进程,数据集很大的时候 fork会耗时, 会导致资源利用很大 暂时的卡顿.
aof 体积大 占用硬盘空间大
aof 使用fsync策略 会导致在高负荷下速度比rdb慢一些
aof 在一些随机复杂的数据集命令处理的时候会导致恢复出的数据不一致( aof 缓存命令,每次缓存的随机数都不一致 )

rdb用于备份数据 aof应用于服务故障时候恢复数据

你可能感兴趣的:(Redis持久化知识点)