面试题答案
一键面试- 过期键处理方式:
- 在 Redis 执行 AOF 重写时,已经过期的键不会被写入到新的 AOF 文件中。因为 AOF 重写的目的是生成一个精简的 AOF 文件,只记录当前数据库状态的有效操作,过期键已不再是数据库的有效部分,所以不会被包含在重写后的 AOF 文件里。
- 对系统性能的影响:
- 正面影响:减少了不必要的键值对写入操作,从而降低了磁盘 I/O 负担,因为不需要将过期键写入新的 AOF 文件。这在一定程度上提高了 AOF 重写的效率,因为重写过程中需要处理的数据量减少了,加快了重写速度,对系统整体性能有积极影响。
- 负面影响:如果系统中过期键数量较多,在判断哪些键过期并排除它们的过程中,会消耗一定的 CPU 资源来进行过期键的检查。不过这种消耗通常相对较小,相比于减少 I/O 带来的性能提升,整体还是有益的。
- 对数据一致性的影响:
- 数据一致性得以保证:由于过期键不会被写入新的 AOF 文件,在 Redis 重启并通过 AOF 文件重放数据时,过期键不会被重新加载到内存数据库中,这确保了重启后的数据库状态与重写时的实际状态一致,维护了数据的一致性。
- 对 AOF 文件大小的影响:
- 显著减小 AOF 文件大小:过期键不写入新 AOF 文件,直接减少了 AOF 文件中的数据量,使得重写后的 AOF 文件更加精简。这不仅节省了磁盘空间,还在后续的 AOF 重写和数据恢复过程中,提高了效率,因为需要处理的数据量变小了。