redis 支持rdb和aof两种持久机制,redis4.0后支持混合持久化。rdb是定时的持久机制,宕机有可能会丢失最后一次持久化之后存在数据丢失。aof是基于操作日志追加的持久机制。(基本回答)
加分项:
1.rdb持久化原理
原理是redis会单独创建(fork)一个与当前进程一模一样的子进程来进行持久化,
这个子线程的所有数据(变量。环境变量,程序程序计数器等)都和原进程一模一样,会先将数据写入到一个临时文件中,
待持久化结束了,再用这个临时文件替换上次持久化好的文件
2.他什么时候fork子进程,或者什么时候触发rdb持久化机制
shutdown时,如果没有开启aof,会触发
配置文件中默认的快照配置
执行命令save或者bgsave save是只管保存,其他不管,全部阻塞 bgsave: redis会在后台异步进行快照操作,同时可以响应客户端的请求,但是在调用fork函数时是阻塞的,很快,可以忽略不计
执行flushall命令 但是里面是空的,无意义。
3.aof原理?
原理是将Reids的操作日志以追加的方式写入文件,读操作是不记录的
4.触发机制(根据配置文件配置项)
no:表示等操作系统进行数据缓存同步到磁盘(快,持久化没保证)
always:同步持久化,每次发生数据变更时,立即记录到磁盘(慢,安全)
everysec:表示每秒同步一次(默认值,很快,但可能会丢失一秒以内的数据)
redis提供的持久化机制
最新推荐文章于 2024-07-22 18:42:29 发布