暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Redis持久化方式RDB介绍

180

背景

    Redis是一个内存数据库,如果没有配置持久化,redis重启后数据就全丢失 因此开启redis的持久化功能,将数据保存到磁盘上,当redis重启后,可以从磁盘中恢复以前的数据。


两种持久化方式

    RDB (Redis DataBase),redis默认采用RDB 。

    AOF (append only file)。


RDB持久化方式介绍

网址:https://baijiahao.baidu.com/s?id=1654694618189745916&wfr=spider&for=pc 


1、在指定的时间间隔内,如果有n次数据的变动,那么在第n次数据变动的结束的时候就讲当前redis内存中的数据以文件的方式保存 下来。【是内存中的全部数据,全量备份】

2、默认的文件名为dump.rdb,新的rdb文件会覆盖老的rdb文件。

3、RDB产生快照的方式有三种 

    save方式【较少使用】 

        会阻塞当前Redis服务器的主进程,执行save命令期间,Redis不能处理其他命令,直到RDB过程完成为止

    bgsave方式【较多使用】 

        当前redis主进程会fork创建子进程,RDB持久化过程由子进程负责,会在后台异步进行快照操作,快照同时还可以响应客户端请求 

    自动化方式【较多使用】 

        在redis.conf配置文件中配置,配置触发 Redis的 RDB 持久化条件 

        比如在redis.conf中增加"save m n",表示m秒内数据集存在n次修改时,自动触发bgsave

    注:save和bgsave是redis服务端的命令,可以直接调用该命令就能执行RDB持久化

4、自动触发bgsave的条件 

    满足m秒n数据集有n次修改

    redis从服务器同步数据的时候,会发送sync指令执行同步操作,master主服务器就会执行bgsave 

5、优点 

    RDB文件紧凑,全量备份,适合用于进行备份和灾难恢复。 

    在恢复大数据集时的速度比 AOF 的恢复速度要快。 

    生成的是一个紧凑压缩的二进制文件。 

6、缺点 

    每次快照是一次全量备份,fork子进程进行后台操作,子进程存在开销。 

    在快照持久化期间修改的数据不会被保存,可能丢失数据。


自动化配置文件的修改

    1、cd /usr/local/redis/conf
    2、vim redis.conf
    3、重启redis服务端


    编辑如下:
    #任意ip的客户端都可以访问
    bind 0.0.0.0
    #以守护进程的方式启动客户端
    daemonize yes
    #客户端登陆密码
    requirepass Lianglinxxxyyy123456
    #日志文件路径
    logfile "/usr/local/redis/log/redis.log"
    #rdb持久化文件名
    dbfilename xdclass.rdb
    #持久化文件存放的路径
    dir /usr/local/redis/data
    #每10秒内修改一次就持久化一次
    save 10 1
    #开启压缩,mor
    rdbcompression yes
    rdbchecksum yes
    复制


    save方法执行RDB图例


    bgsave方法生成RDB图例


    文章转载自梁霖编程工具库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论