保证redis服务器挂掉之后,重启,数据可以恢复,这就是Redis持久化
Redis有两种持久化方式
(1)快照(snapshotting,RDB)
(2)只追加文件(appen-only file,AOF)
默认是采用RDB方式进行持久化 可以这么帮助记忆:一个是存储结果(RDB),一个是存储过程(AOF)
redis中的数据是存储在内存中的,如果突然断电了,那内存中的数据会丢失,持久化数据也就是将内存中的数据写入到硬盘里面,这样即使断电也可以从硬盘中直接写入内存,内存中的数据不会丢失
RDB就是:将某一时刻的内存里面的数据以二进制的方式(保存成一个dump.rdb文件)写入磁盘
redis重启的时候会去加载这个dump.rdb文件来恢复数据
在配置文件redis.config中可以进行设置:
save 900 1 在900秒以内,内存的数据变化超过一次以上,这个时候就会把内存中的所有数据全部持久化到硬盘上
save 300 10 在300秒以内,内存的数据变化超过十次以上,这个时候就会把内存中的所有数据全部持久化到硬盘上
AOF:记录所有的写操作,读操作不记录(将redis执行过的所有指令记录下来),
然后以日志的形式追加到文件中(当日志文件越来越大的时候,它自己会删除一些无效的操作,只保留可以恢复数据的最小指令集)。
恢复数据的时候,直接把这些文件全部再执行一遍就行来完成数据的恢复工作
由于RDB不是每次内存中数据一变化就去持久化到硬盘里,所以有数据丢失的风险,但是RDB很快
AOF刚好相反,每次对内存操作一次,就要对硬盘操作一次,所以它不会有数据丢失的风险,但是它的性能很差,太慢了
RDB更快,AOF更安全
正是由于RDB更快,所以默认是采用RDB方式进行持久化
Redis4.0默认采用混合持久化的方式: