面试题答案
一键面试1. 启动时全量加载
- 优点:
- 简单直接,在系统启动阶段一次性将所有需要缓存的数据加载到Redis中,能快速让系统进入可用状态,缓存命中率一开始就较高。
- 缺点:
- 加载时间长,可能导致系统启动时间显著增加,影响服务的快速上线。
- 如果数据量非常大,可能会造成内存瞬间压力过大,甚至导致服务器内存溢出等问题。
- 对数据的实时性支持较差,若数据在启动后发生变化,缓存不会自动更新。
2. 定时加载
- 优点:
- 可以根据业务需求设置合适的定时任务,定期更新缓存数据,能在一定程度上保证数据的时效性。
- 避免了启动时全量加载对系统启动时间的影响,使系统启动更加迅速。
- 缺点:
- 定时周期难以精准把握,周期设置过短会频繁更新缓存,增加系统开销;周期设置过长则数据时效性难以保证。
- 若在两次定时加载之间数据发生变化,缓存数据就会出现不一致情况。
3. 懒加载(按需加载)
- 优点:
- 只有在实际请求数据时才加载到缓存中,大大减少了初始化阶段的资源消耗,系统启动迅速。
- 对于不常访问的数据,不会占用过多的缓存空间,提高了缓存资源的利用率。
- 缺点:
- 首次请求时由于需要加载数据到缓存,会导致响应时间变长,影响用户体验。
- 如果大量请求同时针对未缓存的数据,可能会造成数据库瞬间压力过大,甚至引发缓存击穿问题。