持久化机制介绍
- RDB
- AOF
- RDB和AOF对比
RDB
rdb的话是利用了写时复制技术,他是看时间间隔内key值的变化量,就比如20秒内如果有5个key改变过的话他就会创建一个fork子进程(bgsave),通过这个子进程,将数据快照进入一个临时文件,完成之后再将临时文件去覆盖dump.rdb文件
主要流程如下:
AOF
AOF:Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中(秒级)
AOF的命令记录的频率也可以通过redis.conf文件来配置,一般我们是采用everysec
因为是记录命令,AOF文件会比RDB文件大很多,而且AOF会记录对同一个key的多次写操作,但是实际上只有最后一次才有意义。
我们可以通过bgrewriteaof命令,让AOF文件执行重写功能,这样他就可以只记录最后一次,减少命令的行数
当然,其实redis中也会在触发阈值的时候自动去重写AOF文件,阈值也可以在redis.conf中配置,
RDB和AOF对比
RDB和AOF各自有各自的优点,如果我们需要对数据的安全性要求高的话,在实际开发中会结合两者来一起使用