Redis持久化
redis持久化机制有两种:
- RDB
- AOF
RDB
1. 基本介绍
2. bgsave执行的底层机制:
- fork的过程会阻塞主进程,fork结束,主进程就可以进行操作了
- fork的实质是子进程复制页表,页表(物理内存与虚拟内存的映射,因为用户进程无法直接访问物理内存)
- 子进程读的过程中,主进程在进行写,就容易发生读写冲突。所以主进程写的时候,会预先拷贝一份数据,再进行写操作
3. 总结:
在redis.conf文件中配置 save "",表示禁用RDB
AOF
1. 基本介绍
为了均衡性能和可靠性,启用AOF后,一般将命令记录的频率配置为 everysec,这也是AOF的默认方案(即每秒刷盘)
2. AOF重写功能
RDB文件记录的是执行命令后存入redis的key-value结构中的数据,而AOF记录的是每次执行的命令。
bgrewriteaof命令,实现AOF文件的重写功能,在保证数据不变的情况下,减少记录的命令,从而减小AOF文件的大小。
那么什么时候触发执行bgrewriteaof命令呢?