redis持久化方式

【rdb】

        rdb保存二进制的东西。Bgsave进行Redis持久化单独创建一个与当前一模一样的进程进行持久化,会先将数据存入一个临时文件,待持久化结束之后,在用临时文件替换上次的临时文件。整个过程中主进称不进行任何的io操作。是将数据存入磁盘文件中,dump.rdb文件。如果是默认配置的话,只在当前目录下会有临时备份文件,换一个目录启动并不会有持久化文件存在。但是一般项目中都会在Redis.Conf中修改配置文件到特定目录下。Dbfilename 文件名,dir文件存储的目录

* 默认进行rdb持久化shutdown没有aof,会触发;

* 执行命令save或者bgsave;save只管保存,其他不管,引起阻塞。Bgsave会在Redis后台fork进程进行备份。

* redis是有主从复制模式的,如果开启了主从复制模式rdb是关不掉的。主从复制的原理就是主机把rdb文件发送给从机的。

【aof】

        aof比rdb持久化丢失的数据少,不会2秒以上。相较rdb会比较耗时间。aof将执行的除了读操作的命令字符串存入文件中。默认一秒钟执行一次(但是可能会产生一秒数据丢失)。如果改成no会等待操作系统进行调用,always一旦数据发生变化那么就会执行,消耗很多的系统资源。可以在redis.conf的appendonly进行修改。

【aof重写机制】

        重写就是给append.aof瘦身的,减去一些重复的命令。大小默认达到64M就进行重写机制,生产环境是一定要对auto-aof-rewirite-min-size 64mb进行修改的。还有一个指标是Auto-aof-rewirite-percentage。第一次重写之后,下一次按照这个比例来进行配置,如果瘦完身之后文件大小为40,那么下一次瘦身的大小是40*比例的数值进行触发。

【Redis4.0之后提供的混合持久化方式】

        混合持久化默认是关闭的,aof-use-rdb-preamble参数进行控制的,混合持久化是通过bgrewriteaof完成的,不同的是混合持久化开启之后,fork出的子进程先将共享内存以rdb的形式写入aof文件中,然后再将重写缓存区的增量命令以aof方式写入到文件中,写入后通知主进程统计信息,然后将新的aof替换旧的aof文件。

混合持久化结合了rdb和aof两种方式,加载速度更快,数据丢失更少

兼容性差,一旦开启了混合持久化4.0之前的版本是不识别aof文件的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值