Redis的持久化

1.Redis的持久化
Redis的持久化

1.1.持久化
持久化,就是将数据保存到磁盘,机器宕机或者重启数据不丢失,如果存储到内存中的数据,会丢失。
1.2.RDB
Redis的持久化

1.2.1.配置

Redis的持久化
Redis的持久化

1.2.2.rdb文件
Redis的持久化

Redis的持久化

1.2.3.RDB数据恢复过程
Redis的持久化

1.2.4.快照过程
Redis的持久化

1.2.5.手动快照
如果没有触发自动快照,需要对redis执行手动快照操作,SAVE和BGSAVE都是执行手动快照,但是两者有区别:
Redis的持久化

1.2.6.快照需要注意
Redis的持久化

1.2.7.RDB文件的压缩
Redis的持久化

压缩和不压缩的优缺点:

压缩:
优点:减少磁盘存储空间
缺点:消耗CPU资源
不压缩:
优点:不消耗CPU资源
缺点:占用磁盘空间多

如何选择? 看需求、看服务器资源情况。

Redis默认是开启压缩的,配置:
Redis的持久化

1.3.AOF

Redis的持久化

1.3.1.测试AOF
当客户端向服务器发送Redis命令时,Redis会将所执行的命令记录到aof文件中,如下:
Redis的持久化

当redis服务器重启后,会将执行该aof文件,达到数据恢复的目的。
1.3.2.优化AOF文件
Redis的持久化

目的:去除数据的中间执行过程,保留最终数据命令即可。
1.3.3.重写策略
Redis的持久化

1.3.4.文件同步策略
Redis的持久化

注意:即使每秒做文件同步也可能导致数据丢失。