【Chapter-6】Redis持久化
【Chapter-6】Redis持久化
持久化
为了保证数据的安全,redis还提供了将数据持久化到磁盘中的机制。redis提供了两种数据持久化类型:RDB和AOF
RDB:可以看做是redis在某一个时间点上的快照,非常适合于备份和灾难恢复。默认开启
AOF:是一个写入操作的日志,将在服务器启动时被重放。默认关闭
使用RDB
RDB默认是开启的,如果要禁用只需要注释掉配置文件中的save选项
我们可以在redis的数据目录中查看是否生成了rdb文件dump.rdb
我们可以手动执行RDB快照,在redis-cli中调用save命令即可。redis-cli会被阻塞一段时间
或者我们可以执行bgsave命令来执行非阻塞的rdb转储,启动新进程转储
RDB工作原理
RDB就像是一台专门给redis数据拍照的照相机,当满足触发策略时,redis就会通过将所有的数据转存到本地磁盘上一个文件的方式给redis的数据拍一张照片。 我们来解释一下save参数的含义,save参数决定了RDB触发策略,这个值的格式是x1,y1,x2,y2,x3,y3... 其含义是,如果超过y个键发生改变且此时没有转储正在发生,则在x秒后进行数据转储
可以同时使用多个策略来控制RDB快照的执行频率
可以通过save或bgsave命令手动执行一次RDB快照,区别在于前者使用主线程同步转储,后者使用新线程异步转储
RDB恢复
要还原RDB快照,我们需要把快照文件(dump.rdb)复制到dir选项指定的位置,并保证启动redis实例的用户有该文件的读、写权限
我们需要通过shutdown nosave 命令停止实例
将新转储文件(要恢复的.rbd文件)重命名为dbfilename选项定义的名字,重新启动后,数据会从备份文件中加载并还原回redis了
使用AOF
RDB持久化并不能提供强的一致性 AOF(append-only file)是一种只记录redis写入命令的追加式日志文件。因为每个写入命令都会被追加到文件中,所以AOF的数据一致性比RDB更高。
AOF默认是关闭的,如果要开启AOF。可以在redis的配置文件中开启appendonly yes
,然后重启reddis-server
使用info persistence
判读是否启动了AOF功能,也可以检查数据目录是否生成了AOF文件
修复aof文件bin/redis-check-aof --fix appendonly.aof
同事使用RDB和AOF
RDB默认开启
AOF手动开启
Last updated
Was this helpful?