1.什么是Redis持久化
把内存中的数据持久化到磁盘。这个过程就是持久化。Redis持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复。
持久化的优点
Redis宕机后数据数据不会丢失。
3.Redis持久化的方式
分为RDB,AOF
①. RDB: 持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发和自动触发。即:以快照的方式进行持久化。 在一定时间间隔内进行快照。把数据进行保存到磁盘。
②.AOF: 以独立日志的方式记录每次写命令,重启时再重新执行AOF文件中的命令达到恢复数据的目的。AOF的主要作用是解决了数据持久化的实时性,目前已经是Redis持久化的主流方式。理解掌握好AOF持久化机制对我们兼顾数据安全性和性能非常有帮助。即:把每次对redis的写操作命令追加到一个日志尾,当redis启动时则把该日志中的命4令执行一遍
- RDB持久化方式
①.什么时候触发RDB
用save和bgsave命令手动出发,或者配置redis配置文件触发。
使用redis配置来触发RDB:
②.RDB持久化方式的优缺点
优点:RDB是一个紧凑压缩的二进制文件,代表Redis在某个时间点上的数据快照。非常适用于 备份,全量复制等场景。比如每6小时执行bgsave备份,并把RDB文件拷贝到远程机器或者文件系统中(如hdfs),用于灾难恢复。
Redis加载RDB恢复数据远远快于AOF的方式。
缺点:RDB方式数据没办法做到实时持久化/秒级持久化。因为bgsave每次运行都要执行fork操作创建子进程,属于重量级操作,频繁执行成本过高。
RDB文件使用特定二进制格式保存,Redis版本演进过程中有多个格式的RDB版本,存在老版本Redis服务无法兼容新版RDB格式的问题。
5.AOF持久化方式
①.如何使用AOF:开启AOF功能需要设置配置:appendonly yes,默认不开启。
②.什么时候会触发AOF
当我们进行写的操作时,会把写的命令放进appendonly.aof文件
③.AOF的优,缺点
优点:(1)AOF可以更好的保护数据不丢失,一般AOF会每隔1秒,通过一个后台线程执行一次fsync操作,最多丢失1秒钟的数据。
(2)AOF日志文件没有任何磁盘寻址的开销,写入性能非常高,文件不容易破损。
(3)AOF日志文件即使过大的时候,出现后台重写操作,也不会影响客户端的读写。
缺点:(1)对于同一份数据来说,AOF日志文件通常比RDB数据快照文件更大.
(2) 恢复数据时时间要比快照模式慢很多