第 1 集 Redis6.x 持久化介绍和 RDB 讲解
简介: Redis6.x 持久化配置介绍和 RDB 讲解
-
Redis 持久化介绍
- Redis 是一个内存数据库,如果没有配置持久化,redis 重启后数据就全丢失
- 因此开启 redis 的持久化功能,将数据保存到磁盘上,当 redis 重启后,可以从磁盘中恢复数据。
-
两种持久化方式
- RDB (Redis DataBase)
- AOF (append only file)
-
RDB 持久化介绍
-
在指定的时间间隔内将内存中的数据集快照写入磁盘
-
默认的文件名为 dump.rdb
-
产生快照的情况
-
save
- 会阻塞当前 Redis 服务器,执行 save 命令期间,Redis 不能处理其他命令,直到 RDB 过程完成为止
-
bgsave
- fork 创建子进程,RDB 持久化过程由子进程负责,会在后台异步进行快照操作,快照同时还可以响应客户端请求
-
自动化
- 配置文件来完成,配置触发 Redis 的 RDB 持久化条件
- 比如 "save m n"。表示 m 秒内数据集存在 n 次修改时,自动触发 bgsave
-
主从架构
- 从服务器同步数据的时候,会发送 sync 执行同步操作,master 主服务器就会执行 bgsave
-
优点
- RDB 文件紧凑,全量备份,适合用于进行备份和灾难恢复
- 在恢复大数据集时的速度比 AOF 的恢复速度要快
- 生成的是一个紧凑压缩的二进制文件
-
缺点
- 每次快照是一次全量备份,fork 子进程进行后台操作,子进程存在开销
- 在快照持久化期间修改的数据不会被保存,可能丢失数据
-
核心配置
- dir 持久化文件的路径
- dbfilename 文件名
#任何ip可以访问
bind 0.0.0.0
#守护进程
daemonize yes
#密码
requirepass 123456
#日志文件
logfile "/usr/local/redis/log/redis.log"
#持久化文件名称
dbfilename xdclass.rdb
#持久化文件存储路径
dir /usr/local/redis/data
#持久化策略, 10秒内有个1个key改动,执行快照
save 10 1
######之前配置######
#导出rdb数据库文件压缩字符串和对象,默认是yes,会浪费CPU但是节省空间
rdbcompression yes
# 导入时是否检查
rdbchecksum yes
第 2 集 分布式缓存 Redis6.x 持久化配置 RDB 操作实战
简介: 分布式缓存 Redis6.x 持久化配置 RDB 操作实战
-
配置持久化
- dir 持久化文件的路径
- dbfilename 文件名
-
save
-
bgsave
-
配置文件触发
bind 0.0.0.0
daemonize yes
requirepass 123456Xdclass
logfile "/usr/local/redis/log/redis.log"
dbfilename xdclass.rdb
dir /usr/local/redis/data
#关闭rdb
#save ""
#10秒2个key变动则触发rdb
save 10 2
#100秒5个key变动则触发rdb
save 100 5
#压缩
rdbcompression yes
#检查
rdbchecksum yes

第 3 集 Redis6.x 持久化配置 AOF 介绍和配置实战
简介: Redis6.x 持久化配置 AOF 介绍和配置实战
bind 0.0.0.0
daemonize yes
requirepass 123456Xdclass
logfile "/usr/local/redis/log/redis.log"
dbfilename xdclass.rdb
dir /usr/local/redis/data
#save 10 2
#save 100 5
save ""
rdbcompression yes
#对rdb数据进行校验,耗费CPU资源,默认为yes
rdbchecksum yes
appendonly yes
appendfilename "appendonly.aof"
appendfsync everysec
第 4 集 Redis6.x 持久化配置 AOF 重新 rewrite 配置实战
简介: Redis6.x 持久化配置 AOF 重新 rewrite 配置实战
第 5 集 Redis6.x 持久化配置 AOF+RDB 的选择问题和混合模式
简介: Redis6.x 持久化配置 AOF 和 RDB 的选择问题
-
Redis 提供了不同的持久性选项:
- RDB 持久化以指定的时间间隔执行数据集的时间点快照。
- AOF 持久化记录服务器接收的每个写入操作,将在服务器启动时再次读取,重建原始数据集。使用与 Redis 协议本身相同的格式以仅追加方式记录命令,当文件太大时,Redis 能够重写
-
补充之前的配置
auto-aof-rewrite-min-size
AOF文件最小重写大小,只有当AOF文件大小大于该值时候才可能重写,6.x默认配置64mb
auto-aof-rewrite-percentage
当前AOF文件大小和最后一次重写后的大小之间的比率等于或者等于指定的增长百分比,如100代表当前AOF文件是上次重写的两倍时候才重写
-
RDB 的优缺点
-
优点:
- RDB 最大限度地提高了 Redis 的性能,父进程不需要参与磁盘 I/O
- RDB 文件紧凑,全量备份,适合用于进行备份和灾难恢复
- 在恢复大数据集时的速度比 AOF 的恢复速度要快
- 生成的是一个紧凑压缩的二进制文件
-
缺点:
- 如果您需要在 Redis 停止工作时(例如断电后)将数据丢失的可能性降至最低,则 RDB 并不好
- RDB 经常需要 fork 才能使用子进程持久存储在磁盘上。如果数据集很大,Fork 可能会非常耗时
-
AOF 的优缺点
-
优点:
- 数据更加安全
- 当 Redis AOF 文件太大时,Redis 能够在后台自动重写 AOF
- AOF 以易于理解和解析的格式,一个接一个地包含所有操作的日志
-
缺点:
- AOF 文件通常比同一数据集的等效 RDB 文件大
- 根据确切的 fsync 策略,恢复的时候 AOF 可能比 RDB 慢
-
在线上我们到底该怎么做?
- RDB 持久化与 AOF 持久化一起使用
- 如果 Redis 中的数据并不是特别敏感或者可以通过其它方式重写生成数据
- 集群中可以关闭 AOF 持久化,靠集群的备份方式保证可用性
- 自己制定策略定期检查 Redis 的情况,然后可以手动触发备份、重写数据;
- 采用集群和主从同步
-
Redis4.0 后开始的 rewrite 支持混合模式