架构设计 | 缓存管理模式,监控和内存回收策略
一、缓存设计 1、缓存的作用 在业务系统中,查询时最容易出现性能问题的模块,查询面对的数据量大,筛选条件复杂,所以在系统架构中引入缓存层,则是非常必要的,用来缓存热点数据,达到快速响应的目的。 缓存使用的基本原则: 所有缓存数据,必须设置过期时间; 核心业务流程不通过缓存层; 缓存层移除,不影响现有流程; 系统各个端首页数据不实时查询; 报表数据不实时查询加载; 归档数据(定时统计的结果数据)不实时查询; 这里是业务架构中常用的缓存策略,缓存通过牺牲强一致性来提高性能,所以并不是所有的业务都适合用缓存,实际考量都会针对具体的业务,比如用户相关维度的数据修改频率低,会使用缓存,但是用户权限数据(比如:免费次数)会考虑实时校验,缓存层使用的相对较少。 2、缓存设计模式 Cache-Aside模式 业务中最常用的缓存层设计模式,基本实现逻辑和相关概念如下: 缓存命中:直接查询缓存且命中,返回数据; 缓存加载:查询缓存未命中,从数据库中查询数据,获取数据后并加载到缓存; 缓存失效:数据更新写到数据库,操作成功后,让缓存失效,查询时候再重新加载; 缓存穿透:查询数据库不存在的对象,也就不存在缓存...

