redis的持久化技术
Redis是一种高级key-value数据库
redis提供了两种不同级别的持久化方式
RDB(redis database)持久化可以在指定的时间间隔内生成数据集的时间点快照
RDB 在恢复大数据集时的速度比 AOF 的恢复速度要快
它只有一个文件,并且内容都非常紧凑,非常适合用于灾难恢复
RDB 可以最大化 Redis 的性能
RDB 是一个非常紧凑的文件,它保存了 Redis 在某个时间点上的数据集
缺点:由于时长的问题,以外程序关闭会造成短暂时间内的文件丢失,且由于间隔快照的问题,在快照的那一刻,
保存 RDB 的时候,Redis 都要 fork() 出一个子进程,在数据集比较大的时候,会造成毫秒级的暂停客户端,
甚至可能达到整整一秒。
虽然设置了时间间隔快照,但是你也可以随时使用save保存
AOF(append only file),策略是追加日志
默认是关闭的,需要在redis.conf中配置打开
原本为appendonly no,将no改为yes就启动了aof
设置不同的 fsync 策略,AOF 的默认策略为每秒钟 fsync 一次,就算发生故障停机,也最多只会丢失一秒
钟的数据
追加日志的过程中即使因为意外,有未完整的命令,aop也可以轻易地修复这种问题
一直追加可能使得aop文件体积过大,冗余,体积过大时,aop自动地在后台对 AOF 进行重写,最小命令集合
AOF 文件的内容非常容易被人读懂,方便于人为的去操作
关于缺点,对比上RDB就可以看出来了