Redis持久化-rdb快照

   在使用Redis的过程中,经常需要将内存中的数据保存到磁盘上进行持久化存储,Redis中提供了两种将内存数据持久化到磁盘上的方法,一种是rdb快照持久化,另一种是aof持久化。这两种持久化方式经常一同使用,以达到安全持久化的目的。本文主要介绍rdb持久化。

rdb持久化的工作原理

   在redis2.X版本之后,redis的rdb持久化是通过一个rdb dump进程完成的,这个进程每隔N秒或者N次写操作后,从内存中dump数据形成rdb文件,然后压缩存放到指定的磁盘目录上。就好像是将内存拍个照,然后把照片放到磁盘上。

   rdb快照持久化的优点是恢复特别快,因为dump文件就是将内存的数据格式原封不动的挪到了磁盘上,被没有做任何修改,所以再次加载时速度很快。缺点是rdb持久化并不能实时保证数据的持久化,因为rdb每次进行dump操作时,前提是必须满足持久化条件,如果满足两次持球化条件之间隔一些时间,那么在这段时间内的写操作就无法进行持久化保持(这就是为什么rdb持久化要与aof持久化同时使用的原因)。

rdb持久化相关参数

    在redis的配置文件中有以下这些参数是与rdb持久化相关的,建议在安装Redis之后如果业务要求将Redis内存中的数据进行持久化操作,那么就将这些参数预先配置好,以免日后需要重启redis才能使参数生效。

    rdb持久化条件

    save 900 1

    save 300 10

    save 60 10000

    以上三个参数是redis默认的进行rdb持久化操作的条件,save后面的第一个数字是秒数,第二个数字是写操作的次数。比如save 60 10000表示60秒内进行了10000次写操作则进行一次持久化操作。可以根据业务实际情况进行调整,需要注意的是rdb持久化不能太频繁操作,尤其是内存中数据量比较大时。

   stop-writes-on-bgsave-error yes这个参数要设置为yes,它表示当rdb dump进程进行持久化操作时如果发生错误,那么redis服务将不再接受写操作。这是为了保证数据一致性,如果持久化发生错误而接续进行写操作,就会造成磁盘数据与内存数据的不一致。

   rdbcompression yes这个参数表示使用LZF对导出的rdb文件进行压缩存储。

   rdbchecksum yes这个参数表示在恢复rdb文件时,检查rdb文件是否被损坏。

   rdbfilename dump.rdb这个参数指定rdb文件的名字。

   dir /var/rdb这个参数指定rdb文件存放的路径。


   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值