Redis 持久化的取舍和选择

本文深入探讨Redis的两种主要持久化方式:RDB快照和AOF日志记录。包括它们的工作原理、优缺点及配置方法,帮助读者理解如何选择最适合应用需求的持久化策略。

持久化的作用

1.什么是持久化

redis 将数据保存在内存中,对数据的跟新异步保存在磁盘当中。

2.持久化实现方式

快照,某时某点数据的备份 1.Mysql Dump 2.redis RDB
写日志 1.MySql binlog 2.redis AOF

RDB

1.什么是RDB

RDB是redis内存到硬盘的快照,用于持久化
redis[内存】—->创建快照—->RDB 文件(二进制)—->重新载入—>redis(内存)

2.触发方式

1.Sava (同步)
redis: save #(可能会阻塞 redis) 如果存在老的RDB文件,将会替换
Ok
2.bgsave(异步 不会阻塞redis ,但是fork()新进程)先返回ok ,在后台继续执行
执行过程:通过fork().生成子进程,CreateRDB去生成RDB 文件,告诉主线程生成成功

sava 和 bgsave 对比:

命令savebgsave
IO类型同步异步
阻塞
复杂度O(n)o(n)
优点不会消耗额外内存不阻塞客户端命令
缺点阻塞客户端需要fork,消耗内存

3.自动(创建bgsave 生成RDB 文件) 生成太频繁。。。

配置secondschanges
save9001
save30010
save6010000

4.相关配置说明
dbfilename dump.dp #文件名称 一般 dump-{port}.rdb
dir./ #存放在当前目录下
stop-writes-on-bgsave-error yes #出现错误是否停止写
rdbcompression yes #是否压缩
rdbchecksum yes #校验

3.不容忽视的方式

1.全量复制 [主从复制]
2.debug reload
3.shutdown 【sava 参数】

配置过程

cd ../redis.conf . #将默认的redis.conf 拷贝到当前目录下
cp redis.conf redis-6379.conf
vim redis-6379.conf
[
daemonize yes
logfile “6379.log”
dbfilename dump-6379.rdb
dir /opt/soft/redis/data
]
redis-server redis-6379.conf
redis-cli
cd /opt/soft/redis/data
tail -f 6379.log #tail -n 10 6369.log 观察文件未十行

AOF

1.RDB 现存的问题
耗时(所有数据都需要拷贝)、耗性能(fork消耗内存)
IO性能的消耗
不可控,丢失数据(下一秒变化肯定丢失数据)
2.AOF 运行原理

1.创建
写一条命令则追加到日志文件中
2.恢复
AOF文件载入到redis 中实现数据的恢复

3.AOF 三种策略

1.always
写命令时候写到硬盘的缓冲区,根据一定的策略写入到磁盘当中(AOF)
always 是每一条命令到会写入到硬盘中(1s内可能写入很多次)
2.everysec
每秒把缓冲区写到缓冲值,高写入量时候保护磁盘
3.no
操作系统决定什么时候该刷入硬盘

命令alwayseverysecno
优点不丢失数据每秒一次fsync不管用
缺点IO开销大丢一秒数据不可控
4.AOF 重写

AOF重写 对原生AOF 进行优化,比如过期的,重复的,没有用的可以优化的命令重写。
优点:减少磁盘占用量;加速恢复速度
两种方式:
1.bgrewriteaof
类似bgsave ,子进程进行AOF重写(将radis 内存数据回溯)
2.AOF重写配置(以下两个要求都需要满足)
auto-aof-rewrite-min-size:AOF文件重写需要的尺寸
auto-aof-rewrite-percentage:AOF文件增长率

5.AOF 相关配置

appendonly yes# 使用AOF 持久化基础
appendfilename “appendonly-{port}.aof” # 持久化文件名
appendfsync everysec #同步策略
dir /path #日志路径
no-appendfsync-on-rewrite yes# AOF 重写时候是否需要做append 操作,这里是不做

redis-cli
config get appendonly
config set appendonly yes
config rewrite
ll #data 下面出现 appendonly.aof
bgrewriteaof # aof重写

RDB 和AOF 选择

1.RDB与AOF 比较
命令RDBAOF
启动优先级
体积
恢复速度
数据安全性丢数据根据策略决定
轻重
2.RDB最佳策略

”关“
”集中管理” 按星期备份等
主从,从开

3.AOF最佳策略

“开” :缓存和存储
AOF 重写集中管理
everySec

4.最佳策略

小分片
缓存或则存储
监控
足够内存

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值