RDB数据持久化(理论)
更新:HHH   时间:2023-1-7


持久化原理:

        RDB是snapshot快照<二进制文件>存储,是默认的持久化方式。

        RDB会按照一定的策略,周期性的将数据保存到磁盘。(下个周期为到来时故障,会丢数据)

        借助fork命令的copy on write机制,在快照生成时,将当前进程fork出一个子进程,

        然后再子进程中循环所有数据,将数据写成RDB文件。

          

优点:使用单独子进程来进行持久化,主进程不会进行任何IO操作,保证了redis的高性能。

缺点:RDB是按照周期性策略进行持久化,

             如果持久化之间redis发生故障,会发生数据丢失,

             所以这种方式适合数据要求不严谨的环境。

    

配置文件相关参数:

       dbfilename dump.rdb            #指定持久化数据文件名

       dir /usr/local/redis-3.0.6-6379/    #默认dir ./

       save 900 1

       save 300 10

       save 60 10000 

       

持久化过程:

       当满足save的条件时,比如更改了1个key,900s后会将数据写入临时文件,

       持久化完成后将临时文件替换旧的dump.rdb。

                      

使用RDB恢复数据:(需要时间)

       重启redis的server即可完成(启动redis的server时会从dump.rdb中先同步数据) 

                              

使用命令进行持久化save存储:

       ./redis-cli -h ip -p port save         #前台进行存储

       ./redis-cli -h ip -p port bgsave      #后台进行存储


返回数据库教程...