redis的持久化笔记

redis存储

rbd模式手动触发和自动触发

save 阻塞当前 Redis,直到 RDB 持久化过程完成为止,若内存实例比较大会造成长时间阻塞,线上环境不建议用它
bgsave 在后台异步(Asynchronously)保存当前数据库的数据到磁盘 BGSAVE 命令 执行之后立即返回 OK ,然后 Redis fork 出一个新子进程,原来的 Redis 进程(父进程)继续处理客户端请求,而子进程则负责将数据保存到磁盘,然后退出。客户端可以通过 LASTSAVE 命令查看相关信息,判断 BGSAVE 命令是否执行成功。
LASTSAVE 返回最近一次 Redis 成功将数据保存到磁盘上的时间,以 UNIX 时间戳格式表示
Redis 自动触发默认是如下配置:
save 900 1 // 900 秒内,对数据库至少修改 1 次。下面同理
save 300 10
save 60 10000
优点: 1. 快速
缺点: 1. 保存后的二进制文件,存在老版本不兼容新版本 rdb 文件的问题

aof模式

aof模式相当于将每条命令存入aop文件,所有的写入命令(set hset)会 append 追加到 aof_buf 缓冲区中 2,AOF缓存区对磁盘做sync同步
随着 AOF 文件越来越大,需定期对 AOF 文件 rewrite 重写,达到压缩
当 redis 服务重启,可 load 加载 AOF 文件进行恢复

redis 的 AOF 配置详解 redis.conf配置:
appendonly yes //启用 aof 持久化方式
三种持久化方式

  • appendfsync always //每收到写命令就立即强制写入磁盘,最慢的,但是保证完全 的持久化,不推荐使用
  • appendfsync everysec //每秒强制写入磁盘一次,性能和持久化方面做了折中,推荐
  • appendfsync no //完全依赖 os,性能最好,持久化没保证(操作系统自身的同步)
    其他配置
  • no-appendfsync-on-rewrite yes //正在导出 rdb 快照的过程中,要不要停止同步aof
  • auto-aof-rewrite-percentage 100 //aof 文件大小比起上次重写时的大小,增长率 100%时,重写 默认参数
  • auto-aof-rewrite-min-size 64mb //aof 文件,至少超过 64M 时,重写 默认参数

AOF和RDB的加载顺序
1,当AOF和RDB文件同时存在时,优先加载,如果开启aof配置,那么首先去找aof,aof文件不存在就会去找rdb文件
2,若关闭了AOF,加载RDB文件
3,加载AOF/RDB成功,redis重启成功
4,AOF/RDB存在错误,启动失败打印错误信息

个人感觉aop和rdb应该同时开启存在,当突然宕机的时候,通过rdb做灾难恢复

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值