通用数据缓存设计方案

随着redis等内存数据库的流行,大多数应用及系统均开始采用redis集群作为系统的缓存方案,用来减少数据库的压力,增加应用并发及响应速度。前端页面的缓存暂不做探讨,主要是针对后端服务的数据缓存。


数据缓存的分类及特点

常规涉及的数据缓存大致可以从以下三个方面进行分类:生命周期、时效性、复杂度;



数据缓存根据生命周期分类主要分为:长期、中期、短期三类,主要作用及特点如下:



数据缓存根据时效性主要分为异步、同步(即实时)两大类,在作用上需要根据实际的业务场景进行划分,在数据同步实现上存在较大的差异;



数据缓存根据复杂度主要分为对象实体、组合对象等两大类,主要特点如下:



实现难点

涉及的大量业务数据缓存属于有实时要求的组合对象,由于组合对象是多个对象通过一定逻辑处理后得到的组合,一旦修改组合中的任一对象,都需要重建组合对象的数据缓存,数据同步实现非常困难;



解决方案:简单对象数据缓存

根据业务简单对象实体大致存在以下分类的数据缓存处理场景:



解决方案:组合对象数据缓存

组合对象处理非常复杂,可以采用业务单位为基础展开,以该业务单位更新对象实体让组合对象失效的方式实现:



以上两种只是针对数据缓存方案的其中一种可行性探讨,通过这种方式,可以实现系统级通过缓存的框架。当然,其中需要考虑到缓存的命中率、命中频次等因素,对于命中较低的不推荐使用缓存,建议采用其他方式解决;对于部分实时性要求不高的业务场景,还可以通过消息队列等方式采用异步的方式更新数据缓存等。

猜你喜欢

转载自blog.csdn.net/zhangjin530/article/details/53327053