【转载】redis 持久化配置 无缝从rdb切换到aof 安全保留数据

redis默认持久化配置rdb,但是如果贸然切换配置到aof方式,重启会导致数据丢失

问题

redis默认持久化配置rdb,但是如果贸然切换配置到aof方式,重启会导致数据丢失

如果数据不重要,都是缓存数据则没什么,如果是重要临时数据,不能丢失的情况,则需要特殊处理,保证数据不丢失

根本原因

  • rdb方式默认将数据持久化存储到dump.rdb文件下
  • aof方式默认将数据写操作记录到appendonly.aof文件下
  • 如果同时开启2种方式,重启会默认加载aof方式
  • redis默认只开启rdb
  • 综上,如果你是默认rdb方式,然后贸然切换到aof,重启后会读取aof文件,但是这个时候aof文件是空的,则会导致redis被清

解决方法

原理:在redis控制台动态配置打开 aof方式,在 shutdown安全退出后,自动记录了当前所有记录到 aof文件,再修改redis文件配置打开 aof方式,启动redis时会自动加载之前安全退出保存的 aof数据
  1. 进入redis

    redis-cli
  2. redis中动态修改配置并退出

    127.0.0.1:6379> save # 收到触发rdb存储数据 OK 127.0.0.1:6379> CONFIG SET appendonly yes # 动态配置 OK 127.0.0.1:6379> save OK 127.0.0.1:6379> shutdown save # 安全退出并存储数据 not connected> 
  3. 修改redis配置,打开aof
    vim redis.conf

    appendonly no #aof方式默认关闭
  4. 启动redis
    service redis start

附录

rdb配置

save 900 1              #在900秒(15分钟)之后,如果至少有1个key发生变化,则dump内存快照。
save 300 10            #在300秒(5分钟)之后,如果至少有10个key发生变化,则dump内存快照。 save 60 10000        #在60秒(1分钟)之后,如果至少有10000个key发生变化,则dump内存快照。

aof配置

 
appendonly no #aof方式默认关闭
appendfilename "appendonly.aof" #文件名 appendfsync everysec #同步模式(可选no always everysec) no-appendfsync-on-rewrite no auto-aof-rewrite-percentage 100 auto-aof-rewrite-min-size 64mb aof-load-truncated yes

转载: https://segmentfault.com/a/1190000017103674?utm_source=coffeephp.com

转载于:https://www.cnblogs.com/mldblue/articles/11327866.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值