1.实时同步更新
特点:更新数据库的同时,更新缓存,使用缓存工具类或者AOP实现
优点:数据一致性强,不会出现缓存雪崩
缺点:代码耦合,运行期耦合,影响正常业务,增加一次网络开销
适用场景:写操作频繁、数据一致性要求比较高,比如银行业务、证券业务
2.准实时同步更新
特点:更新数据库后,异步更新缓存,使用使用mq实现或者binglog同步
优点:数据一致性较强、有较短的延迟,与业务代码解耦,不会影响正常业务,不会出现缓存雪崩
缺点:有较短延迟,无法保证最终一致性,需要补偿机制
试用场景:不适合写操作频繁且数据一致性要求严格的场景
3.缓存失效机制
特点:基于缓存自身的失效机制,弱一致性
优点:实现简单,与业务完全解耦,不影响正常业务
缺点:有一定延迟,存在缓存雪崩问题
试用场景:适合读多写少的互联网场景,允许一定数据延迟
4.任务调度更新
特点:采用任务调度框架,按照一定频率更新
优点:不影响正常业务,与业务解耦
缺点:不保证一致性,代码复杂度增大(要维护两套代码),容易堆积垃圾数据
试用场景:复杂统计类数据缓存,对数据一致性要求低的场景,比如统计类数据、BI分析
网友评论