(1)RDB是一次性持久化整个redis的数据,是通过fork子进程的方式实现的,linux fork子进程时需要拷贝进程页表,如果redis实例占用内存很大,fork时会影响redis服务的对外服务,而且持久化的间隔不能设置太小。
(2)AOF是追加型,每条命令都会以追加文件的形式持久化,可以通过配置策略控制持久化的间隔,比如always就是每条指令都备份,不同策略需要在不同场景下对性能和数据安全做取舍。随着文件的增大,还会有合并AOF文件操作,降多条命令合并成同样结果的一条命令。
Redis的持久化支持两种模式混合使用,在脚短的时间内用AOF,随着时间推移,再配合一次RDB