Redis-持久化

持久化

1.快照(一次全量备份)(默认的持久化策略)

    内存数据是二进制序列化形式,在存储上非常紧凑
    原理:
        Redis使用操作系统的多进程COW(copy on Write写时拷贝技术)机制来实现快照持久化
        在持久化的时候调用fork产生一个子进程,(子进程创建后,父子进程共享数据段)
        父进程继续处理客户端请求(对内存数据结构进行不间断的修改),因为会分离出很多的页面所以就叫(快照)  
        快照持久化交给子进程来处理(不会修改现有的内存结构,只是对数据结构进行遍历读取,然后序列化到磁盘),

    缺点:不够实时,可能会导致数据的丢失,
    优点:效率高

2.AOF日志(连续的增量备份)

    AOF日志记录的是内存数据修改的指令记录文本
    原理:
        AOF日志存储的是Redis服务器的顺序指令序列,
    AOF重写
    fsync
快照是通过开启子进程的方式进行的,它是一个比较耗资源的操作
    1.遍历整个内存,大块写磁盘会加重系统负载
    2.AOF的fsync是一个耗时的IO操作,它会降低Redis性能,同时也会增加系统IO负担
    所以通常Redis的主节点是不会进行持久化操作,持久化操作主要在从节点进行,从节点是备份节点,
    没有来自客户端请求的压力,
    为了减少数据丢失的风险,使用多节从节点,万一有一个节点挂了,其他的从节点依然可以从主节点同步数据

3.Redis4.0混合持久化

    快照+AOF,在Redis重启的时候,先加载rdb的内容,然后再重放增量

参考 : https://segmentfault.com/a/1190000016021217

你可能感兴趣的:(Redis-持久化)