Redis的持久化
- redis是一个内存数据库,当redis服务器重启,或者电脑重启,数据就会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中
- redis持久化机制:RDB和AOF
RDB持久化
- RDB持久化保存数据库状态的方法是将键值对数据保存到RDB文件中
- SAVE命令由服务器进程直接执行保存操作,会阻塞服务器
- BGSAVE命令由子进程执行保存操作,不会阻塞服务器
- RDB文件用二进制压缩存储
- 在一定的间隔时间中,检测key的变化情况,然后持久化数据
- 一般情况下,推荐使用,因为对性能影响比较小
# after 900 sec (15 min) if at least 1 key changed
save 900 1
# after 300 sec (5 min) if at least 10 keys changed
save 300 10
# after 60 sec if at least 10000 keys changed
save 60 10000
save 900 1 意思是:如果服务器距离上次生成快照已经过了900秒,并且在此期间执行了至少一次写入操作,那么Redis就会自动开始一次新的BGSAVE操作
当用户配置了多个save配置选项,那么当任意一个选项的条件被满足时,Redis就会触发一次BGSAVE命令
AOF持久化
- AOF持久化以日志记录的形式,通过将所有修改数据库的写命令保存到AOF文件中的方式来记录数据库状态
- 以文本的方式记录,可以打开文件看到详细的操作记录
- 所有命令都以Redis命令请求协议的格式保存
- 命令请求会先保存到AOF缓冲区里面,之后定期写入并同步到AOF文件
- 服务器只要载入并重新执行保存在AOF文件中的命令,就可以还原数据库本来的状态
- 不太推荐使用,对性能影响较大