内存缓存-设计
1 缘起 在业务开发场景中,主要用到两个开发能力:接口粘合+缓存。 一个好的缓存设计,能够降低服务的时延,抵抗流量洪峰。 比如最近的西安健康码事件,明显缓存设计上是存在明显问题的 :-)。 2 什么场景需要加缓存? 提高服务质量,降低时延; 减少对下游的请求量,节省资源 3 缓存常见问题 缓存问题 解决办法 (1) 缓存失效的策略 惰性过期(读取时判断如果过期了,就返回且异步更新) (2) 缓存集中失效 设置随机过期时间 (3) 缓存击穿(大量穿透导致雪崩) singleflight 合并多个相同的请求 3.1 50行代码,实现一个可用的 singleflight? groupCache 库实现了一个可用……