什么是redis持久化
RDB(redis database) AOF(append only file)
redis是内存数据库,如果不将内存中的数据库状态保存到磁盘,那么一旦断电退出,服务器中的数据也会消失,所以redis提供了持久化功能
RDB
触发的rdb操作都会保存在dump.rdb文件中
usr/local/bin 文件夹下
打开redis.config文件
表示 900s 有一次对key的增删改,就会触发rdb操作
表示 200s 有10次对key的增删改,就会触发rdb操作
表示 60s 有10000次对key的增删改,就会触发rdb操作
我们现在自定义一个
只要60秒内 有5次对key的操作,就会触发rdb操作
将rdb文件删除
添加5个key
127.0.0.1:6379> set name xiaofei OK 127.0.0.1:6379> set age 23 OK 127.0.0.1:6379> set address xuanhua OK 127.0.0.1:6379> set gender male OK 127.0.0.1:6379> set hobby Java OK
触发rdb机制
打开dump.rdb文件,里面保存了我们刚刚写了的数据
什么时候触发rdb机制:
- redis.config配置文件中的save规则满足的情况下
- 执行flushall命令
- 退出redis
备份就是产生一个dump.rdb文件
优点:
- 适合大规模的数据恢复
- 对数据的完整性要求不高
缺点:
- 需要一定的时间间隔进行操作,如果redis意外宕机了,最后一次修改的数据就没了
- fork进程的时候,会占用一定的内存空间
AOF
将我们的命令都记录下来,相当于浏览器的history,恢复时,吧这个文件的命令全部执行一遍,所以如果数据很多时,会耗费时间。以日志的形式记录每一个动作,redis重启的话,会根据日志文件的内容将指令从前到后执行一遍
aof保存的文件时appendonly.aof文件
默认是不开启的 默认是no 改成yes表示开启
一旦编辑appendonly.aof 这个文件,那个连接redis会出现错误
那么你可以使用这个命令来为我们修复这个文件
redis-check-aof --fix appendonly.aof
修复成功
修复之后发现连接成功