(条件是一样平常的业务代码中,缓存空则去要求数据库)

1、缓存雪崩征象:由于访问了没有缓存,或者已经由期的KEY,导致大量要求到达数据库

2、缓存击穿:单个KEY的高并发访问,高负载导致命中丢失,大量并发查询到达数据库

redis缓存方案phpRedis高并发缓存设计 Angular

so,如何设计

针对第一个问题,环绕着办理缓存为空的空窗期,有两种方案: 一、读写分离。
业务代码只卖力读,定时脚本卖力写

二、设置两个过期韶光,一个是业务逻辑上的过期韶光,另一个是相对滞后的实际过期韶光,在两个韶光点之间,对缓存进行更新

针对第二个问题,把单KEY节点的负载访问,随机分散到几个缓存副本节点中。
更新的时候,缓存副本全部同步更新。

以上。

作者:夏镇冰茶

链接:https://www.jianshu.com/p/e640da5c36b9