一、什么是Redis持久化
redis是基于内存的数据库。
优点是cpu读取内存速度快,一秒钟可以进行数十万次,可以直接和cpu速度相近,读取极快。
缺点是基于内存,存在断电数据丢失的情况。
为了防止其数据断电丢失,就需要将数据存入硬盘中,这样在断电后也可以访问到数据库当中的数据。这个将内存的数据写入到磁盘中,防止服务器宕机内存数据丢失,就是redis的持久化。
二、Redis提供的持久化机制
1、RDB(Defult):Redis DateBase
按照一定的时间将内存的数据以快照的形式保存到硬盘中,对应产生的数据文件为dump.rdb。
2、AOF:Append Only File
将redis执行的所有写命令记录到日志文件中,将被执行的写命令写到AOF的文件末尾,当redis重启时,redis会从头到尾执行一次AOF文件所包含的所有写命令,以此回复AOF文件的记录的数据集。
三、RDB详解
1、生成数据库快照
①客户端方式:BGSAVE 和 SAVE指令
②服务端方式:服务器配置自动触发 和 shutdown
客户端方式:
- BGSAVE:客户端可以使用BGSAVE命令来创建一个快照,当接收到客户端的BGSAVE命令时,redis会创建一个子进程,子进程负责将快照写入磁盘中,而父进程继续处理命令请求。(在子进程创建之初,