面试题答案
一键面试- AOF持久化模式下过期键的处理:
- 当一个键过期并被删除时,Redis会在AOF文件中追加一条DEL命令。后续在进行AOF重写时,重写程序会忽略那些已经过期的键,不会将其写入新的AOF文件中。
- 性能优化途径及原理:
- 定期重写AOF文件:
- 原理:随着Redis不断运行,AOF文件会逐渐变大。定期重写AOF文件(可以手动执行BGREWRITEAOF命令或通过配置自动触发),重写过程会读取当前数据库中的所有键值对,将其以简洁的格式重新写入新的AOF文件。由于过期键在重写时不会被写入新文件,这样可以有效减小AOF文件的体积,减少磁盘I/O操作,提高读写性能。同时,较小的AOF文件在进行数据恢复时也会更快。
- 优化过期键删除策略:
- 原理:Redis默认采用惰性删除(当访问键时检查是否过期,过期则删除)和定期删除(定期在数据库中随机检查部分键,删除过期键)相结合的策略。可以适当调整定期删除的频率和每次检查的键的数量。如果频率过高可能会影响主线程性能,频率过低则可能导致过期键长时间占用内存。合理调整这两个参数,能在不影响主线程性能的前提下,更及时地删除过期键,减少不必要的内存占用,避免因内存占用过多导致AOF写入时频繁的磁盘操作,从而提升整体性能。
- 定期重写AOF文件: