本文讲解知识点
持久化的简介
RDB
AOF
RDB与AOF的区别
持久化应用场景
对于持久化这个功能点,其实很简单没有那么复杂
Redis持久化
演示环境
1. 持久化简介
2. RDB
2-1 RDB启动方式 -- save命令
2-2 RDB启动方式 -- save指令相关配置
2-3 RDB数据恢复
2-4 RDB -- save指令工作原理
2-5 RDB -- bgsave指令工作原理
2-5 RDB -- 配置文件自启动
3. AOF
3-1 AOF概念
3-2 AOF写数据过程
3-3 AOF写数据的三种策略
3-4 AOF功能开启
3-5 AOF写数据出现的问题
3-6 AOF重写
3-7 AOF重写作用
3-8 AOF重写规则
3-9 AOF手动重写
3-10 AOF手动重写工作原理
3-11 AOF自动重写
3-11 AOF工作流程和重写流=流程
4. RDB和AOF区别
演示环境
centos7.0
redis4.0
redis存放目录:/usr/local/redis
redis.conf存放目录:/usr/local/redis/data
1. 持久化简介
redis的所有数据都是保存在内存中,redis崩掉数据会丢失。redis持久化就是把数据保存在磁盘上。利用永久性存储介质将数据进程保存,在特定的时间将保存的数据进行恢复的工作机制称为持久化。
持久化过程保存的是什么呢?
第一种快照形式,存储数据结果,关注点在数据,也就是下文会讲到的RDB
第二种操作过程,存储操作过程,存储结构复杂,关注点在数据的操作过程,也就是下文会讲到的AOF
2. RDB
2-1 RDB启动方式 – save命令
下图是redis.conf的配置信息,在执行完save后会生成一个dump.rdb的文件
现在我们设置一个值,然后save一下,在/usr/local/redis/data下就会有一个dump6379.rdb的一个文件
2-2 RDB启动方式 – save指令相关配置
- dbfilename dump6379.rdb :设置本地数据库文件名,默认值为dump.rdb
- dir:存储rdb文件的路径
- rdbcompression yes :设置存储至本地数据库时是否压缩数据,默认为yes,采用lzf压缩
- rdbchecksum yes:设置是否进程RDB文件格式校验,该校验过程在写文件和读文件过程均进行
2-3 RDB数据恢复
其实这个数据恢复相对于其他关系型数据库恢复基本就不用操作什么。只需要重新在启动就好了
2-4 RDB – save指令工作原理
此图来源于网络视频。
save指令的执行会阻塞当前redis服务器,直到当前RDB过程完为止,有可能会造成长时间的阻塞。这个指令在工作过程中基本以被废弃不在使用。会以bgsave全部代替
2-5 RDB – bgsave指令工作原理
当在redis执行了bgsave后会直接返回一个Background saving started
这个时候我们在看一下日志文件,bgsave命令是针对save阻塞问题做的优化
2-5 RDB – 配置文件自启动
save 900 1 save 300 10 save 60 10000 stop-writes-on-bgsave-error yes
save 【时间】 【key改变数量】
也就是说在300秒有10个key值发生变化了,就会在后台执行bgsave