面试题答案
一键面试常见缓存更新策略
- Write - Through(直写式):
- 策略描述:当有数据更新时,同时更新缓存和数据库。确保缓存和数据库的数据始终保持一致。
- 优点:数据一致性强,操作简单易懂。
- 缺点:每次更新都需要操作数据库,可能导致数据库写入压力大,影响系统性能。
- Write - Back(回写式):
- 策略描述:数据更新时,只更新缓存,标记缓存数据为脏数据。当缓存需要被替换或者定时任务触发时,才将脏数据写回数据库。
- 优点:减少数据库写入次数,提高系统响应速度,适合高并发写操作场景。
- 缺点:存在数据一致性问题,若系统故障,缓存中的脏数据未及时写回数据库,可能导致数据丢失。
- Write - Around(写绕式):
- 策略描述:数据更新时,直接更新数据库,不更新缓存。读取数据时,如果缓存中没有则从数据库读取并写入缓存。
- 优点:避免了缓存和数据库同时更新的开销,减轻数据库写压力的同时保证数据最终一致性。
- 缺点:读取时可能出现缓存穿透问题,即大量请求访问不存在的数据,每次都穿透到数据库查询,增加数据库压力。
场景下合适的策略及原因
在存储数据库中的用户信息场景下,Write - Through策略相对更合适。原因如下:
- 数据一致性要求高:用户信息对于业务至关重要,需要保证其准确性和一致性。Write - Through策略每次更新都同步更新缓存和数据库,能很好地满足这一需求。
- 写操作频率相对不高:相比一些高并发写入场景,用户信息的更新频率通常不会特别高,Write - Through策略所带来的数据库写入压力在可承受范围内。而Write - Back虽然减少数据库写入次数,但可能导致的数据一致性问题在用户信息场景下风险较大;Write - Around可能出现的缓存穿透问题对数据库压力影响也较大,且同样不能保证数据实时一致性,所以Write - Through更适合该场景。