共计 878 个字符,预计需要花费 3 分钟才能阅读完成。
Redis持久化有 RDB和EOF两种。
RDB
RDB全称Redis Database Backup file(Redis数据备份文件),也被叫做Redis数据快照。简单来说就是把内存中的所有数据都记录到磁盘中。当Redis实例故障重启后,从磁盘读取快照文件,恢复数据。
使用命令
bgsave/save
fork的时候采用copy-on-write技术
RDB配置
save 900 1
save 300 10
save 60 10000
AOF
AOF的含义是追加文件,当redis操作写命令的时候,都会存储这个文件中,当redis实例宕机恢复数据的时候,会从这个文件中再次执行一遍命令来恢复数据
AOF配置
appendonly no/yes
appendfilename “appendonly.aof”##刷盘策略
# appendfsync always
appendfsync everysec ## 每秒写一次文件
# appendfsync no
RDB与AOF对比
问答总结
问:redis做为缓存,数据的持久化是怎么做的?
答:在Redis中提供了两种数据持久化的方式:1、RDB 2、AOF
问:这两种持久化方式有什么区别呢?
答:RDB是一个快照文件,它是把redis内存存储的数据写到磁盘上,当redis实例宕机恢复数据的时候,方便从RDB的快照文件中恢复数据。AOF的含义是追加文件,当redis操作写命令的时候,都会存储这个文件中,当redis实例宕机恢复数据的时候,会从这个文件中再次执行一遍命令来恢复数据
问:这两种方式,哪种恢复的比较快呢?
答:RDB因为是二进制文件,在保存的时候体积也是比较小的,它恢复的比较快,但是它有可能会丢数据,我们通常在项目中也会使用AOF来恢复数据,虽然AOF恢复的速度慢一些,但是它丢数据的风险要小很多,在AOF文件中可以设置刷盘策略,我们当时设置的就是每秒批量写入一次命令