摘要:
缓存穿透是用户访问一个不存在的key,导致请求穿透到数据库。 问题关键是程序上要识别出这个key是一个错误key,不是由系统生成的key。每次添加或删除缓存时维护一个key字段查询过滤器,例如:布隆过滤器、HashSet。这样在访问缓存前,可以对key先进行查询过滤,判断key是否存在,再往下执行业 阅读全文
摘要:
上一篇说到缓存的更新操作是非幂等操作,会出现并发更新的问题。那用缓存删除操作实现缓存更新行不行,您可能觉得奇怪,删除了缓存如何更新,假设读业务先读取缓存,如果发现没有就回溯到读数据库找数据,然后再更新回缓存。这种方式叫做懒加载,是在查询到数据库时,主动更新缓存。就是说删除同样能达到更新缓存的目的,为 阅读全文
摘要:
为什么缓存与数据库要结合使用,使用缓存的目的是为了减少用户请求穿透到服务端和数据库,尽量将资源放置在离用户更近的地方,让用户能够更快得到应答。在一些活动大促、秒杀场景中,经常会面临突然的流量爆发,造成系统的高并发访问。例如秒杀商品的详情页内容提前预热到缓存中,能缓解数据库读取压力。但在高并发下,缓存 阅读全文