1、redis的持久化的两种方式;已经这两种方式的使用场景和方式
答案:
一、redis的持久化方式之RDB:
我们所谓的RDB持久化就是指的是将当前进程的数据生成快照存入到磁盘中,触发RDB机制又分为手动触发和自动触发
1、手动触发RDB:
save命令,但是save命令将会阻塞我们的redis服务器直到RDB完成,所以真实的环境中一般不会使用该命令
bgsave命令,使用该命令redis会fork一个子进程来负责RDB持久化,完成持久化后自动结束子进程,所以只会发生在fork的阶段
2、自动触发RDB:
自动触发RDB只要在redis的conf配置文件中配置save相关的配置即可,如save m n,这就表示在m秒内我们的数据发生了n次修改;使用bgsave命令会自动触发RDB;
3、使用RDB的注意事项:
若手动触发RDB一般使用bgsave命令,自动触发默认使用的也是bgsave命令
执行bgsave命令,redis会判断是否正在执行RDB的子进程,如果存在则直接返回
父进程fork完之后,bgsave命令将会返回Background saving started之后就不再阻塞父进程
redis将RDB文件保存在dir配置的指定的目录下,并且文件名为配置的dbfilename,也可以通过执行config set dir{dirpath}与config set dbfilename{新的文件名字}
二、redis的持久化方式之AOF:
AOf持久化是以独立的日志记录每次写命令,重启redis的时候再重新执行AOF文件中命令以达到回复数据,所以AOF主要就是解决持久化的实时性
1、AOF原理:
所有的写入的命令都会被追加到aof_buf这么一个缓冲区中
接着AOF缓冲区根据对应的同步策略向磁盘做同步的操作,同步策略可以通过修改redis配置文件中的参数appendfsync进行配置
随着AOF文件变大,定期对文件进行重写操作来
Redis的两种持久化方式
最新推荐文章于 2025-04-20 16:03:02 发布