Redis持久化笔记(3)

redis持久化:把内存的数据存放到磁盘,避免因为断电等导致数据丢失。

RDB(Redis Database)

rdb就是在一定时间间隔内把当时的数据和状态保存为 .rdb文件放在磁盘中。

自动触发设置:在redis.conf

 修改.rdb文件的保存位置​​​​​​:​

可以在redis中使用config get dir命令获取.rdb的保存位置

手动触发:SAVE(不要用)和BGSAVE(默认)命令

SAVE:会中断redis的其他功能,当持久化操作完成后再重新启用。

BGSAVE:在后台异步进行保存操作,会fork一个子进程由它来执行持久化操作。

lastsave:获取上一次持久化操作成功的时间戳

修复破损的rdb文件:在set操作时value读到一半时redis死掉了,数据会出错从而可能导致整个rdb都坏了。

执行命令: redis-check-rdb    /(路径)/dump.rdb(可能破损的rdb文件)

禁用rdb:

1.在配置文件中删除save

2.动态禁用:redis-cli config set save ""

AOF(Append Only File)

aof:以日志形式记录每个写操作,对于该日志文件只允许追加不允许改写。redis启动时重新读该文件,将使用写操作重新执行一遍。

默认情况下,redis没有开启aof。

开启aof:修改配置文件:appendonly yes。

redis与aof文件间有个aof缓冲区,它会控制什么时候把写操作记录到aof文件,避免频繁的磁盘io。

为了防止aof文件膨胀,会进行aof重写,把一些命令合并,压缩文件。

写回策略:可以到配置文件中修改:appendfsync everysec

1、always:同步写回,写一个记一个,频繁io。

2、everysec(默认):每秒将aof缓冲区的内容写到磁盘。

3、no:每次命令都写到aof缓冲区,由操作系统决定何时将缓冲区写到磁盘。

aof 在 配置文件 的内容:

开启:appendonly yes

写回策略:appendfsync everysec

aof文件保存位置:redis6及以前:与rdb相同,都是配置文件的 dir 配置

                              redis7之后:appenddirname "appendonlydir",如果dir为 /myredis ,

                                                   那么最后aof文件会在 /myredis/appendonlydir/ 下。

aof文件保存名称:redis6及以前:appendfilename "appendonly.aof"

                              redis7之后:appendfilename "appendonly.aof",但会一分为三,会有三个文件。

如果在命令写入aof时redis挂了,aof会被污染,这时启动redis会报错,无法启动。

修复方法:redis自带的那个aof修复工具:redis-check-aof 

                在aof文件存放目录下执行命令: redis-check-aof --fix appendonly.aof.1.incr.aof

aof重写:当aof文件越来越大,可以使用aof重写进行文件瘦身

在配置文件中设置aof文件到达什么程度时开始aof重写。

设置重写峰值:auto-aof-rewrite-min-size 64mb

aof文件中有base.aof和incr.aof ,语句保存在incr.aof中,设置的峰值也是设置给incr.aof文件的,

当incr.aof文件超过了峰值,redis会自动aof重写,把incr.aof文件与base.aof文件合并瘦身后写给新的base.aof,而新的incr.aof重新开始记录。

这里把峰值设置为1k方便演示。

如果想要立刻进行aof重写:只需要在redis中执行:bgrewriteaof 

RDB 与 AOF 混合持久化

开启或关闭:aof-use-rdb-preamble yes/no

aof的优先级比较高

重启redis时优先载入aof文件来恢复数据(aof的数据集更完整)。rdb更适合用于备份数据库(aof会不断变化不好备份)。

rdb先进行快照存储,aof进行增量保存,当重写策略或手动触发重写时,将最新的数据存储为新的rdb记录。

纯缓存模式

同时关闭aof和rdb

关闭rdb:save "",关闭后依然可以使用save或bgsave生成rdb文件

关闭aof:appendonly no,关闭后依然可以使用bgrewriteaof生成aof文件

  • 14
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值