Redis学习(三) -- Redis的持久化方案

 

Redis之所以性能优秀是因为其将数据都存储在内存中,这样就伴随着一个问题,当重启服务后,数据会不会丢失?答案当然是不会。Redis有着优秀的数据持久化方案,可以保证重启服务,或者服务挂掉时,数据不会丢失。

持久化,将内存中的数据保存在磁盘中,重启服务时,会将数据从磁盘恢复到内存中。

Redis的持久化有两种方案,Rdb以及Aof。下面来详细讲解一下。

1、Rdb方式。

       这是Redis默认的一种持久化方案,定期通过快照的形式将数据保存到磁盘上。

     Rdb方式的规则以及快照间隔时间:  在redis.conf文件中,

save 900 1:900秒内发生一次数据库操作

save 300 10:300秒内发生10次数据库操作

save 60 10000: 60秒内发生10000次数据库操作

以上三个条件是或的关系,满足任一即进行持久化。

在redis.conf文件中还可以指定持久化文件存储的目录。如下图:

dbfilename 后面就是Rdb方式持久化文件的名称,下面dir 后面就是指定该文件的目录。上图中是默认配置,一般不做修改。

工作原理:当redis需要做持久化时,redis会fork一个子进程;子进程将数据写到磁盘上一个临时RDB文件中;当子进程完成写临时文件后,将原来的RDB替换掉,这样的好处就是可以copy-on-write

Rdb方式的缺点:

             如果redis被非法关闭,那么会丢失最后一次持久化之后的数据。因为Rdb方式持久化有个时间间隔。

            如果数据不重要,则不必担心,如果数据重要的话,就请使用Aof方式。

2、Aof方式

Redis默认是不使用该方式进行持久化的。

该方式的持久化,是每次操作redis数据库时,都会将操作记录存储到aof持久化文件中。

第一步:开启aof持久化方案。

            将redis.conf文件中的appendonly的值改为yes,即开启了aof方式的持久化。

       

下面的appendfilename 后面的是aof持久化文件名称,文件目录和Rdb方式的一样。

第二步:修改完之后重启Redis,重启后会发现bin目录下多出来一个appendonly.aof文件。

      

    可以看到该文件大小为0,接下来我们操作一次数据库,然后看看大小是否有改变。

      

   注意:如果同时使用Rdb和Aof方式进行持久化,重启redis时,数据从aof持久化文件中加载。

 

好了,关于Redis持久化方案的学习就这么多,希望能帮助到也正在学习这块儿的你。

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

redis学习另外几篇:

Redis的简介以及安装启动

Redis的五种数据类型以及相关操作命令

Redis的主从复制

主从切换

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值