@HanLi2021 赞同 79 楼的做法,但逻辑顺序可以,先查询布隆过滤器,布隆过滤器根据业务周期性更新,结果是不存在直接返回,存在再去查 DB 或 redis,这样先拦截 90%的流量,后面的流量具体看 DB 是否能抗住,实在不行分库分表的做法也可以,这样整体方案简单;如果不能可以用 redis 缓存下大部分的流量,但需要同步 DB 中的数据到 redis,一种方式是双写,复杂度高,一种是只写 DB,使用自动同步工具同步 DB 中的数据到 redis,稍微简单。但这些都引入了额外的复杂性。其实还是倾向只用布隆过滤器和 DB 分库分表,实现方案简单。