失效采用主动失效与被动失效相结合的方式。
被动失效
被动失效主要处理如模板变更和一些对时效性不是太敏感的数据的失效,采用设置Cache时间长度这种自动失效的方式,同时也要开发一个后台管理界面来用于手工失效某些Cache。
主动失效
主动失效有如下几种:
- Cache失效中心监控数据库表变化,发送Purge失效请求;
- 装修时间戳比较失效装修内容;
- Java系统发布,清空Cache;
- Vm模板发布,清空Cache。
其中失效中信承担了主要的失效功能,这个失效中心的逻辑图如下图所示。
失效中心通过监控关键数据对应表的变更来发送失效请求给Cache,从而清除Cache数据。