通用数据缓存设计方案
2016-11-24 22:44
260 查看
随着redis等内存数据库的流行,大多数应用及系统均开始采用redis集群作为系统的缓存方案,用来减少数据库的压力,增加应用并发及响应速度。前端页面的缓存暂不做探讨,主要是针对后端服务的数据缓存。
数据缓存的分类及特点
常规涉及的数据缓存大致可以从以下三个方面进行分类:生命周期、时效性、复杂度;
数据缓存根据生命周期分类主要分为:长期、中期、短期三类,主要作用及特点如下:
数据缓存根据时效性主要分为异步、同步(即实时)两大类,在作用上需要根据实际的业务场景进行划分,在数据同步实现上存在较大的差异;
数据缓存根据复杂度主要分为对象实体、组合对象等两大类,主要特点如下:
实现难点
涉及的大量业务数据缓存属于有实时要求的组合对象,由于组合对象是多个对象通过一定逻辑处理后得到的组合,一旦修改组合中的任一对象,都需要重建组合对象的数据缓存,数据同步实现非常困难;
解决方案:简单对象数据缓存
根据业务简单对象实体大致存在以下分类的数据缓存处理场景:
解决方案:组合对象数据缓存
组合对象处理非常复杂,可以采用业务单位为基础展开,以该业务单位更新对象实体让组合对象失效的方式实现:
以上两种只是针对数据缓存方案的其中一种可行性探讨,通过这种方式,可以实现系统级通过缓存的框架。当然,其中需要考虑到缓存的命中率、命中频次等因素,对于命中较低的不推荐使用缓存,建议采用其他方式解决;对于部分实时性要求不高的业务场景,还可以通过消息队列等方式采用异步的方式更新数据缓存等。
数据缓存的分类及特点
常规涉及的数据缓存大致可以从以下三个方面进行分类:生命周期、时效性、复杂度;
数据缓存根据生命周期分类主要分为:长期、中期、短期三类,主要作用及特点如下:
数据缓存根据时效性主要分为异步、同步(即实时)两大类,在作用上需要根据实际的业务场景进行划分,在数据同步实现上存在较大的差异;
数据缓存根据复杂度主要分为对象实体、组合对象等两大类,主要特点如下:
实现难点
涉及的大量业务数据缓存属于有实时要求的组合对象,由于组合对象是多个对象通过一定逻辑处理后得到的组合,一旦修改组合中的任一对象,都需要重建组合对象的数据缓存,数据同步实现非常困难;
解决方案:简单对象数据缓存
根据业务简单对象实体大致存在以下分类的数据缓存处理场景:
解决方案:组合对象数据缓存
组合对象处理非常复杂,可以采用业务单位为基础展开,以该业务单位更新对象实体让组合对象失效的方式实现:
以上两种只是针对数据缓存方案的其中一种可行性探讨,通过这种方式,可以实现系统级通过缓存的框架。当然,其中需要考虑到缓存的命中率、命中频次等因素,对于命中较低的不推荐使用缓存,建议采用其他方式解决;对于部分实时性要求不高的业务场景,还可以通过消息队列等方式采用异步的方式更新数据缓存等。
相关文章推荐
- 用户权限设计 ASP.NET系统用户权限设计与实现、用户认证管理设计方案、通用数据权限管理系统设计
- 一种高效、可自动扩容、缓存、永久存储通用方案设计
- 数据共享方案设计
- 项目实战之中小网站数据缓存的设计与实现
- 数据备份方案设计及实施注意事项
- 设计、实现一个 Asp.Net 应用的通用数据存取层(二)
- 通用数据权限管理系统设计
- 一种通用的接口设计方案
- 基于COM技术的分布式栅格数据引擎设计方案与应用
- 通用数据权限管理系统设计
- 通用数据权限管理系统设计
- 以XML为数据传输格式的Web service设计方案
- 可复用、扩展的缓存设计方案
- 用户权限设计(三)——通用数据权限管理系统设计【转】
- 设计、实现一个 Asp.Net 应用的通用数据存取层(二)
- 通用数据权限管理系统设计
- 应用开发中数据字典项设计实现方案
- 行政区划数据方案设计
- 写行政区划数据方案设计系列有感
- 基于EZ_USB FX2的通用数据传输模块设计