文章目录
Redis持久化机制
RDB
- Redis执行快照/副本时是怎么保证非阻塞对外提供服务的同时实现将数据落地的?
- Redis默认开启RDB
配置参数释义
save / bgsave
- save : 关机维护时使用,会阻塞服务
- bgsave : fork创建子进程,不会阻塞服务
弊端
优点
Redis Forck
- 使用linux的时候,父进程的数据,子进程可不可以看得到?
- 如果父进程是redis,内存数据比如10G,触发fork() 创建子进程时应该如下:
AOF
- Append Only File (只会向文件追加)
- Redis中,RDB和AOF可以同时开启
- 如果开启了AOF,只会用AOF恢复
优点
- 丢失数据少
弊端
- 文件体量无限变大,恢复慢
方案分析
- 既然如此,什么方案才能既保住AOF丢失数据量少的优点,又要让AOF足够小?
- AOF是一个混合体
- 有这样一个配置项【aof-use-rdb-preamble yes】
AOF配置
开启AOF
- 编辑配置文件
vi /etc/redis/6379.conf (配置文件路径按照自己的路径来)
- 找到APPEND ONLY MODE 部分配置文件
- 将
appendonly no
修改为appendonly yes