reids持久化

redis持久化:

将内存中的数据写入到磁盘中去,防止断电情况下数据的丢失
分为 rdb 和aof

1.rdb(redis database)

定义:在指定时间内将内存中的数据进行写入到磁盘中去
        并且写入是全量写入(文件名称:dump.rdb)
位置:在redis安装路径下面 redis.conf

redis7的配置文件显示是60s内操作超过10000次,或者300s内操作超过100次 ,或者1小时内操作超过1次就进行备份
在这里插入11图片描述

持久化操作:手动和自动

自动备份设置
进行覆盖redis原有的备份条件 441行
在这里插入图片描述
修改rdb文件保存路径(注:需要先进行创建对应的文件夹)
在这里插入图片描述
修改对应的文件保存名称
新名称
修改信息完成后进行保存并重启redis
redis-cli -a admin shutdown
redis-server /myredis/redis7.conf
redis-cli -a admin

查询当前rdb文件保存目录:CONFIG get dir
在这里插入图片描述

手动进行保存: save && bgsave
bgsave:
redis会在后台进行异步执行快照操作。不会导致进行执行快照的过程中,不会响应客户端的请求。(会fork一个子进程,由子进程进行快照的持久化过程)

save:
在主程序中执行会阻塞当前的redis的服务器,直到该持久化操作执行完成后,redis服务器才能执行其他的命令,正式环境中禁止使用

lastsave: 可以进行获取最后一次执行快照的时间

rdb的优缺点

优点:
1.适合大规模的数据恢复
2.按照业务定时进行备份
3.对数据的完整性和一致性要求不高
4.RDB文件在内存中的加载速度大于AOF

缺点:
1.在进行备份的过程中,redis数据进行操作后,redis服务器down掉就会导致这部分数据丢失。
2.内存太大的话,会导致io严重影响服务器的性能
3.内存数据太大时,进行bgsave和save时会导致备份时,内存等于原来的double倍

修复rdb文件

进入到redis根目录下面:进行修复rbd文件
redis-check-rdb /myredis/dumpfiles/dump6379.rdb
在这里插入图片描述

2.AOF(APPEND ONLY FILE)

是什么?能干啥?保存的文件格式?

1.是以记录日志的形式进行记录每一个写的操作,aof将所有的写指令进行录下来,只许追加文件,不能进行改写文件,redis启动时会读取该文件并且会重构数据库。

2.redis服务器重启后会执行一遍aof文件里面所记录的写操作指令,进行数据的恢复工作

3.保存的格式为appendnoly.aop

4.redis默认是关闭aof的备份操作,开启只需要按照途中进行修改为yes
在这里插入图片描述

aof的三种写回机制

always:同步写回,每写一个命令执行完成后立即同步到磁盘中去 (性能差可靠性高,数据基本不丢失,但是每个命令都立即执行会导致io过高,导致服务器异常)
everysec:每秒写回,每个命令执行完成后,只是先将日志操作写道aof的缓存中,每隔一秒写到磁盘中(性能适中,如果异常只丢失一秒内的操作)
no:由操作系统控制的写回(性能好,但是数据可能会大量丢失)
在这里插入图片描述

优点:更好的保护数据不丢失、性能高,可做紧急恢复
缺点:相同数据集aof文件大于rdb文件,恢复速度慢于rdb
aof运行效率小于rdb,每秒同步策略效率较好,不同步效率和rdb相同

AOF的重写机制

启动aof文件的内容压缩,只保留恢复数据的最小单元集

  • aof文件重写并不是对源文件进行重新整理,而是对读取服务器现有的键值对,进行用一条命令进行代替之前记录的这个键值对的多条命令,生成一个新的文件去替换原来的aof文件
  • aof文件的重写触发机制,通过redis.conf配置文件中的auto-aof-rewrite-perrcentage:默认值为100 ,以及auto-aof-rewrite-min-size:64mb,也就是说默认的redis会记录上次重写时的aof大小,默认的配置是当前的aof文件大小是上次rewrite后大小的一倍,且文件大于64mb时会进行触发
    在这里插入图片描述

RDB & AOF 一起使用

特点:

  • RDB 持久化方式能够在指定的时间间隔进行对redis进行快照
  • AOF持久化方式是进行记录每次的写操作,当服务器进行重启的时候会执行这些命令进行恢复原始的数据,aof命令以redis协议追加到保存每次写操作的文件末尾

同时开启加载顺序
在同时开启aof和rdb 时,redis会优先加载aof文件恢复原有的数据,因为在通常情况下aof的数据完整性大于rdb
rdb文件数据不实时,但是也不能只保留aof,因为rdb更适合用于备份数 据库,因为aof不断进行变化。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值