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

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

redis默认持久化配置rdb,可是若是贸然切换配置到aof方式,重启会致使数据丢失

问题vim

redis默认持久化配置rdb,可是若是贸然切换配置到aof方式,重启会致使数据丢失缓存

若是数据不重要,都是缓存数据则没什么,若是是重要临时数据,不能丢失的状况,则须要特殊处理,保证数据不丢失安全

根本缘由app

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

解决方法code

原理:在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.confit

    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
相关文章
相关标签/搜索