网页游戏大全下载google关键词优化
Redis支持RDB和AOF两种持久化机制
1、RDB(Redis DataBase)
- 是对命令的全量快照
 - 随着key的数量增大,那么写入磁盘的开销也会越来越大
 
2、RDB文件的生成是否会阻塞主线程
save: 使用save的方式会阻塞主线程,影响redis的性能
 bgsave: 一般情况下不会阻塞主线程,原因是会创建一个子进程,单独取创建一个RDB的dump文件,是默认配置。
 
 上图中的配置,后台使用的bgsave命令,save只是一个摆设。
3、bgsave为啥不阻塞主线程?

 另外,shutdown也会开启save操作。
 and, 从节点执行的全量复制操作,这个时候主节点自动执行bgsave,生成一个RDB文件发给从节点。从节点拿到文件开始全量复制。
4、快照的时候修改key的影响?
- 在进行bgsave的时候,是可以对key进行修改的。
 - 在主线程fork一个子进程进行快照的时候,在bgsave命令执行后,如果对key进行修改,那么写时复制的值是旧值,那么从节点拿到的数据就是旧的数据,与主节点key不一致.
RDB导致的数据丢失问题
主线程在fork的时候,会导致阻塞.因此RDB的方式还是有很大的缺陷 
5、AOF (append only file)
-  
配置文件中开启aof

注意:读命令不会写入AOF。 -  
AOF的工作流程

 -  
Redis的重启加载流程

生产环境,是RDB + AOF共同使用的

 
