1.数据持久化:快照持久化,AOF持久化
快照持久回:通过创建快照来获得在内存里面得数据在某个时间点上得副本。
创建快照得方法:客户端向redis发送bgsave命令,会调用fork来创建一个子进程,然后子进程将快照写入硬盘。缺点:创建子进程会出现停顿,还有可能出现数据丢失。
AOF持久化:将执行得命令写到AOF文件得末尾,以此来记录数据发生得变化。因此只要Redis从头到尾执行一次AOF文件包含得所有写命令,就可以恢复AOF文件所记录得数据集。
通过appendonly yes 配置项来打开;appendfsync选项及同步频率:always:每个redis命令都要同步写入硬盘。
everysec:每秒执行一次同步。no:让操作系统来决定何时进行同步。
缺点:AOF文件不断增长,恢复时间可能会很长。
通过BGREWRITEAOF命令,移除冗余命令重写AOF文件,由子进程进行文件重写,所以也会有性能问题和内存占用问题。