①缓存穿透:数据不存在就会直接访问数据库,数据库压力大。
方案:缓存空对象
②缓存雪崩:大量缓存在同一时间段失效,大量数据同时访问数据库
③缓存击穿:一个被高并发访问且缓存重建业务较复杂的缓存key失效了,大量数据涌入该缓存
方案:1.互斥锁:第一个查到的线程上锁并修改,其余的等待开锁再访问
2.逻辑过期:先用着旧数据,等新数据来了再用新的
④封装以上工具
①缓存穿透:数据不存在就会直接访问数据库,数据库压力大。
方案:缓存空对象
②缓存雪崩:大量缓存在同一时间段失效,大量数据同时访问数据库
③缓存击穿:一个被高并发访问且缓存重建业务较复杂的缓存key失效了,大量数据涌入该缓存
方案:1.互斥锁:第一个查到的线程上锁并修改,其余的等待开锁再访问
2.逻辑过期:先用着旧数据,等新数据来了再用新的
④封装以上工具