该栏目会系统的介绍 Redis 的知识体系,共分为相关概念、操作指令、主从复制等模块
RDB持久化
1、概述
- :指定的时间间隔内将内存中的数据集快照写入磁盘,恢复时是将快照文件直接读到内存里
2、优势
- 适合大规模的数据恢复
- 对数据完整性和一致性要求不高更适合使用
- 节省磁盘空间
- 恢复速度快
3、持久化流程
- :redis会单独创建(fork)子进程来进行持久化,会先将数据写入到临时文件中,待持久化过程都结束了,再用这个临时文件替换旧文件
4、相关配置
# 设置文件名称,默认为dump.rdb
dbfilename dump.rdp
# 设置文件位置
dir ./
# 快照规则设置
save 3600 1
save 30 10
save 60 10000
# 当redis无法写入磁盘时,直接关闭redis写操作
stop-writes-on-bgsave-error yes
# 压缩文件
rdbcompression yes
# 检查文件完整性
rdbchecksum yes
AOF持久化
1、概述
- :以日志的形式来记录每个写操作,只允许追加文件但不可以改写文件
2、优势
- 备份机制更稳健,丢失数据概率更低
- 可读的日志文本,通过操作AOF稳健,可以处理误操作
3、持久化流程
- 客户端的请求写命令会被append追加到AOF缓冲区内
- AOF缓冲区根据AOF持久化策略[always,everysec,no]将操作sync同步到磁盘的AOF文件中
- AOF文件大小超过重写策略或手动重写时,会对AOF文件rewrite重写(只关注最后的结果,不关注中间过程 ),压缩AOF文件容量
- redis服务重启时,会重新load加载AOF文件中的写操作达到数据恢复的目的
4、相关配置
# 启动AOP
appendonly yes
# AOF文件名称
appendfilename "appendonly.aof"
# AOP同步频率
appendfsync always | everysec | no (立刻同步 | 每秒同步 | 不同步)
# 重写策略:大于64mb的100%,即128M才会重写
auto-aof-rewrite-percentage 100
auto-aof-rewrite-min-size 64mb