Redis持久化方式AOF和RDB

跳转到------Redis持久化方式-->AOF

Redis持久化

  1. RDB(Redis DB)------数据
  2. AOF(AppendOnlyFiel)------命令

默认情况下,RDB开启,AOF不开启。这两种形式都可以将存储在内存中的数据库数据以文件形式保存到硬盘中,防止数据丢失。

RDB

RDB持久化功能可以将服务器包含的所有数据库数据以二进制文件的形式保存到硬盘中,创建RDB类型的文件,默认为dump.rdb。服务器再次启动时会载入RDB文件,根据RDB文件的内容、还原服务器原有的数据库数据。

创建RDB文件方式

前两种需要用户手动执行,第三种有redis服务器自动执行

  1. 服务器执行客户端发送SAVE命令
  2. 服务器执行客户端发送BGSAVE命令
  3. 使用save配置选项设置的自动保存条件被满足,服务器自动执行BGSAVE

SAVE命令

执行save命令的过程中,即创建RDB文件过程中,redis服务器将被阻塞,无法处理客户端发送的命令请求,只有在SAVE命令执行完毕之后,,服务器才重新开始处理客户端发送的命令请求。

如果RDB文件已经存在,那么服务器将自动使用新的RDB文件去代替旧的RDB文件。(为防止rdb文件丢失或被恶意篡改,可以设置定时将rdb文件转移到别的位置,文件命名标明保存时间

BGSAVE命令

执行bgsave命令同样会创建一个新的RDB文件,但这个命令执行过程中不会造成redis服务器阻塞。【1、当redis服务器接受到BGSAVE命令时,他不会自动创建RDB文件,而是通过fork()来生成一个子进程,然后由子进程负责创建RDB文件,而自己继续处理客户端的命令请求    2、当子进程创建好RDB文件并退出时,他会向父进程(即负责处理命令请求的redis服务器)发送一个信号,告知他RDB文件已经创建完毕    3、最后redis服务器(父进程)解手子进程创建的RDB文件,BGSAVE执行完毕】



猜你喜欢

转载自blog.csdn.net/qq_39783244/article/details/80339294