面试题答案
一键面试- 部分写操作丢失
- 产生原因:AOF默认是每秒执行一次fsync操作将缓冲区数据写入磁盘。如果系统故障发生在两次fsync之间,这期间写入Redis的数据就会丢失。因为这部分数据还在内存缓冲区中,尚未被持久化到磁盘。
- 数据不一致(重放问题)
- 产生原因:当AOF文件因为某些原因(如磁盘损坏等)出现部分数据损坏时,在进行AOF重放恢复数据过程中,可能会导致数据不一致。由于损坏部分的数据无法正确重放,使得恢复后的数据集与故障前不完全相同。
- AOF文件写入延迟
- 产生原因:如果配置为always模式,即每次写操作都同步到磁盘,虽然保证了数据不会丢失,但可能因为磁盘I/O性能问题导致写入延迟增大。这可能使得在高并发写操作场景下,客户端等待时间过长,影响系统整体的一致性体验,因为后续读操作可能无法及时获取到最新写入的数据。