zoukankan      html  css  js  c++  java
  • 2020/03/21-redis(2)

    Redis的持久化

    Redis有两种持久化方案:RDB和AOF

    1.RDB

    触发条件

    RDB是Redis的默认持久化方案,当满足一定的条件时,Redis会自动将内存中的数据全部持久化到硬盘。

    RDB持久化缺点:可能会造成数据丢失。优点:一次性持久化多条数据,执行效率高。

    条件在redis.conf文件中配置,格式如下:

    save (time) (count)
    

    当满足在time(单位是秒)时间内,至少进行了count次修改后,触发条件,进行RDB快照。

    例如,默认的配置如下:


    基本原理

    RDB的流程是这样的:

    • Redis使用fork函数来复制一份当前进程(父进程)的副本(子进程)
    • 父进程继续接收并处理请求,子进程开始把内存中的数据写入硬盘中的临时文件
    • 子进程写完后,会使用临时文件代替旧的RDB文件

    2.AOF

    基本原理

    AOF方式默认是关闭的,需要修改配置来开启:

    appendonly yes # 把默认的no改成yes
    

    AOF持久化的策略是,把每一条服务端接收到的写命令(增删改)都记录下来,每隔一定时间后,写入硬盘的AOF文件中,当服务器重启后,重新执行这些命令,即可恢复数据。

    AOF文件写入的频率是可以配置的:

    AOF文件重写

    当记录命令过多,必然会出现对同一个key的多次写操作,此时只需要记录最后一条即可,前面的记录都毫无意义了。因此,当满足一定条件时,Redis会对AOF文件进行重写,移除对同一个key的多次操作命令,保留最后一条。默认的触发条件:

  • 相关阅读:
    Python实现日志分析并转成excel
    dockerfile案例 springboot项目部署
    1、springboot启动加载不到src/main/resources下的配置文件application.yml
    [Dockerfile构建镜像]
    dockerfile案例 centos
    dockerfile语法
    dockerfile 笔记202110622
    docker 数据卷 挂载共享
    docker 国内镜像加速aliyun
    微信公众号 几种移动端UI框架介绍
  • 原文地址:https://www.cnblogs.com/ShenYian/p/12542436.html
Copyright © 2011-2022 走看看