美文网首页
Redis备份

Redis备份

作者: 小青多多 | 来源:发表于2022-06-11 21:42 被阅读0次

    Redis备份使用AOF还是RDB,如果Redis恢复后数据如何备份

    如果可以接收少量的数据缺失,可以使用RDB,因为它快!

    如果完全不能接收任何数据的丢失,那么就用AOF。

    Redis的持久化方式:

    AOF: (append only file)记录了所有执行的写命令,可以在服务器重启后重新执行这些命令来恢复数据集。aof文件中的命令都是以redis的协议格式存储,新的命令会追加到文件的末尾。同时redis还会对文件进行重写,以保存aof文件的体积不会太大。

    写记录策略appendfsync:aof缓冲区写入aof文件的同步策略

    1)no: 不用fsync,只告知操作系统需要时刷新数据即可,快

    2)always:每次执行写入操作后进行fsync。慢,但安全

    3)everysec(默认):每秒同步一次

    恢复操作:其实就是读取文件,执行一遍写命令。

    优点:a、能记录所有写操作,不会丢失数据;b、aof文件内容人类可读;

    缺点:a、文件大小比RDB的大;b、对于不同的fsync策略,性能效率不稳定

    RDB:(Redis database)在指定的时间间隔内生成内存中所有数据集的持久化快照文件,默认名称为dump.rdb ,rdb文件经过压缩,文件比较小,利于传输,恢复数据也比较快。

    RDB执行过程:

    1)主进程调用fork函数,复制出当前进程的一个副本 - 子进程

    2)主进程继续接收客户端的请求

    3)子进程将内存中的内容转储到dump文件

    4)子进程转储完成后,将新生成的dump文件替换掉旧的dump.rdb文件

    在执行fork的时候,操作系统会使用写时复制策略,主子进程拥有相同的内存模型。当主进程要修改数据时,操作系统会将内存中该页数据复制一份,从而保证不会影响到子进程的转储操作。

    恢复操作:redis重启后会自动读取快照文件内容到内存,来恢复数据。

    优点:a、文件小,占用空间小;b、保存的是基于时间点的数据快照,适合数据的备份和容灾;c、数据恢复起来比较快

    缺点:a、小概率丢失数据;b、当数据集很大的时候,fork操作会有很大的开销,影响主线程;c、fork的时候内存复制一份,数据集占用空间会增加一倍。

    相关文章

      网友评论

          本文标题:Redis备份

          本文链接:https://www.haomeiwen.com/subject/uypwmrtx.html