缓存穿透:
1)应用请求访问数据库中不存在的key,造成访问穿透到数据库,再返回到应用
如果应用有大量的key,在数据库中都不存在会造成数据全部穿透中数据库,造成数据库访问压力
解决方法:在缓存中存储null对象,但如果有海量的不能存在的key访问,怎么解决?
使用布隆过滤器(本质是位数组)
1.离线数据加载到布隆过滤器
2.布隆过滤器查询
3.如果不存在直接返回,存在再去查缓存,查数据库
2)高并发下,在数据写入到缓存之前,又有大量并发过来,也会造成缓存的穿透
redis做分布式锁的问题:锁的续约问题,关于AP模型,主机挂掉从这时还没同步数据时造成其他又获得这把锁