1、redis是内存数据库,一旦进程推出数据就会丢失,为防止这种情况redis需要定时的将内存中的数据持久化到硬盘,
这样因为不知原因进程死掉重启后,redis可以从硬盘中重新加载数据实现数据恢复。
目前有两种方案:RDB(redis database)和AOF(append only file)
2、rdb持久化:redis默认的持久化方式。可设置在指定时间内,执行指定次数操作时,就讲数据写入硬盘。命令save m n
如:save 60 1
60秒内有1次操作,就讲数据持久化到硬盘。默认是save 900 1
优点:备份文件小,数据恢复快,性能要求低
缺点:数据完整性和一致性不高,可能最后一次备份前刚好宕机了
3、aof持久化:redis默认不开启。原理是将redis每一次写操作指令都记录在日志里,当需要恢复数据时将指令从前到后执行一遍
配置方式:
1)appendfsync-always:每次写操作都记录
2)appendfsync-everysec:每秒记录一次
3)appendfsync-no:不记录
优点:数据完整性和一致性高
缺点:随着时间推移,写日志文件会越来越大,恢复数据时会越来越慢。