面试题答案
一键面试1. appendonly
- 配置说明:该配置项用于开启或关闭AOF持久化功能。取值为
yes
或no
,默认是no
。 - 作用:只有开启了
appendonly yes
,Redis才会将写命令追加到AOF文件中,否则不会进行AOF持久化,也就不存在AOF文件载入的问题。
2. appendfilename
- 配置说明:指定AOF文件的名称,默认值为
appendonly.aof
。 - 作用:明确AOF文件的具体名字,在进行AOF文件载入时,Redis会按照此文件名寻找并加载相应的AOF文件。
3. appendfsync
- 配置说明:控制AOF文件的同步策略,有三个可选值:
always
、everysec
和no
。 - 作用:
always
:每个写命令都同步到AOF文件,这种方式最安全,数据丢失风险最小,但性能开销最大,因为每次写操作都要进行磁盘I/O。everysec
:每秒同步一次AOF文件,在性能和数据安全性之间做了较好的平衡。即使系统崩溃,最多丢失1秒的数据。no
:由操作系统决定何时同步,性能最好,但数据丢失风险较高。在AOF文件载入时,不同的同步策略可能影响到载入前AOF文件的完整性状态。
4. no-appendfsync-on-rewrite
- 配置说明:取值为
yes
或no
,默认是no
。当开启AOF rewrite
时,该配置决定是否暂停appendfsync
。 - 作用:如果设置为
yes
,在进行AOF重写期间,会暂停appendfsync
,以避免因为同时进行写操作和重写操作而导致磁盘I/O竞争。这样做可以提高重写的效率,但在重写期间如果系统崩溃,可能会丢失更多的数据。在AOF文件载入前,如果有未完成的重写操作,此配置会影响AOF文件的状态及载入的可靠性。
5. auto-aof-rewrite-percentage
和 auto-aof-rewrite-min-size
- 配置说明:
auto-aof-rewrite-percentage
:指定当前AOF文件大小相较于上次重写后AOF文件大小的增长百分比,默认值为100。auto-aof-rewrite-min-size
:指定触发AOF重写的最小AOF文件大小,默认值为64MB。
- 作用:当AOF文件大小同时满足超过
auto-aof-rewrite-min-size
且比上次重写后大小增长了auto-aof-rewrite-percentage
时,Redis会自动触发AOF重写操作。重写后的AOF文件会更加紧凑,有助于在载入时更快地恢复数据,保证数据的完整性和载入效率。如果AOF文件过大且碎片化严重,可能导致载入时间过长甚至载入失败,合理设置这两个参数可避免这种情况。