面试题答案
一键面试- 内存碎片化:
- 原因:频繁的插入和删除操作会使Redis的内存空间产生大量不连续的小块空闲内存。当需要分配较大内存空间时,可能无法找到足够连续的内存,从而需要进行内存整理,这会消耗额外的CPU资源,导致性能下降。
- 哈希冲突:
- 原因:Redis字典采用哈希表结构,当大量的键值对被插入且哈希函数设计不佳或者数据分布不均匀时,会产生较多的哈希冲突。哈希冲突使得在查找、插入和删除操作时,需要从哈希桶链表中遍历更多的节点,增加了操作的时间复杂度,降低了性能。
- 锁竞争:
- 原因:在高并发写操作场景下,为了保证数据一致性,通常需要对Redis进行加锁。多个写操作同时竞争锁资源,会导致大量线程处于等待状态,增加了线程上下文切换的开销,降低了系统整体的并发处理能力,进而影响性能。