redis持久化
redis持久化的方式
RDB(Redis DataBase)
1.RDB(Redis DataBase),是在不同的时间点,将redis存储的数据生成快照并存储到磁盘等介质上;
2.redis在进行数据持久化时,先将数据写入到临时文件,待持久化过程都结束,用临时文件替换上次持久化好的文件。
3.redis会单独创建(fork)一个子进程持久化,主进程不会进行任何IO操作,确保redis极高的性能。
4.即使每5分钟都持久化一次,当redis故障时,仍然会有近5分钟的数据丢失。
AOF(Append Only File)
1.AOF(Append Only File),是将redis执行过的所有写指令记录下来,在下次redis重新启动时,执行一遍这些写指令,数据就可以恢复。
2.默认的AOF持久化策略是每秒钟fsync一次(fsync是指把缓存中的写指令记录到磁盘中),即使redis故障,会丢失最近1秒钟的数据。
3.AOF文件的大小超过所设定的阈值时,redis启动AOF文件的内容压缩,保留恢复数据的最小指令集。
4在进行AOF重写时,采用先写临时文件,全部完成后再替换,断电、磁盘满等问题不会影响AOF文件的可用性,
RDB和AOF联系
1.进行大规模数据的恢复,且数据恢复的完整性不是非常敏感,使用RDB方式。
2.数据的完整性非常敏感,使用AOF方式。
3.redis重启时,若RDB和AOF同时使用,优先采用AOF方式恢复数据,AOF方式的数据恢复完整度更高。
4.如果没有数据持久化的需求,关闭RDB和AOF方式,redis将变成一个纯内存数据库。
5.同样数据规模的情况下,AOF文件比RDB文件体积大。AOF恢复速度慢于RDB方式。
文章标题:redis持久化
发布时间:2019-11-11, 16:01:24
最后更新:2019-11-11, 17:40:08