面试题答案
一键面试固定过期时间策略
- 选择原因:用户基本信息很少变动,设置固定过期时间可确保缓存数据定期更新,防止数据长期未更新导致的不一致问题。
- 优点:实现简单,易于控制缓存数据的生命周期;能在一定程度上保证数据的时效性。
- 缺点:如果设置的过期时间过长,在用户信息变动时,缓存数据不能及时更新,会导致数据不一致;若过期时间过短,则频繁更新缓存,增加系统开销。
基于事件驱动的过期策略
- 选择原因:针对用户基本信息变动少的特点,当用户信息发生实际变动(如修改姓名、联系方式等)这一事件触发时,主动让缓存过期,可精准保证缓存数据与数据库数据的一致性。
- 优点:能实时保证缓存数据的准确性,只有在数据真正变动时才更新缓存,减少不必要的缓存更新操作,降低系统开销。
- 缺点:需要额外监听数据变动事件,增加了系统复杂度;如果事件监听机制出现故障,可能导致缓存数据不能及时过期,出现数据不一致。
惰性过期策略
- 选择原因:结合用户基本信息很少变动的特性,在每次访问缓存时检查数据是否过期,不过期则直接返回,过期则从数据库加载最新数据并更新缓存。可减少不必要的过期检查开销。
- 优点:只有在数据被访问时才进行过期检查和更新操作,减少了系统在后台定期检查过期数据的开销;对于很少被访问的数据,不会浪费资源去主动更新缓存。
- 缺点:在数据过期后到下次访问期间,返回给用户的是过期数据,可能影响业务;如果大量数据同时过期且被集中访问,会导致数据库压力瞬间增大,甚至引发缓存雪崩问题。