DataRabbit 轻量的数据访问框架(20)-- 实时同步的实体缓存 SyncEntityCache
中国IT站 www.chinaitz.com 2009-5-13

  在系统架构设计中,使用缓存是最常用的降低数据库负载和提升性能的策略,缓存的主要目的是减少对数据库的Read操作。但是在不同的情况下,我们需要使用不同形式的缓存。

  比如,如果数据表中的数据是静态的、不会发生变化的,那就非常容易,我们只需要在系统启动的时候,将其加载到内存,以后每次从内存读取数据即可。

  再比如,数据表中的数据会发生变化(增删改),但是变化的频率非常低,而恰巧我们的系统对数据实时性的敏感度也不是特别高,那我们可以使用定时刷新的缓存,DataRabbit 中也内置了对这种缓存的支持,可以参见 DataRabbit 轻量的ORM框架(16)-- Entity缓存 。

  再比如,数据表中的记录非常多,并且修改方面只会有Insert操作,那么我们可以使用HotCache,把那些经常使用的记录缓存在内存中,并且设定超时机制。HotCache我们会在后面介绍。

  再比如,某个数据表的修改经常是Insert和Update操作,但是无论如何Update,每条记录有些固定栏位的值都是不会发生变化的,那我们可以把这些不会发生变化的栏位封装在一个【子对象】中,然后在内存中缓存这些子对象。

  举了这么多例子,现在我们进入本文正题,假设我们的某个数据表中的数据会发生变化(增删改),但是变化的频率比较低,但是我们的系统对这个表的数据的实时性的敏感度也特别高,那这时候我们就需要用到【实时同步的实体缓存】,这个缓存中的数据在任何时候都与数据表中的数据是完全一致的。

  DataRabbit 中的SyncEntityCache就是这样的缓存。

  当然,使用这样的实时同步缓存有一个前提是必须保证的,那就是对目标数据表的修改都必须经由SyncEntityCache来进行,这个前提应该还是比较容易保证的。

共4篇1 2 3 4 下一页
责任编辑:admin本文仅代表作者观点,与中国IT站立场无关。
收藏】 【推荐】 【投稿】 【 】 【打印】 【关闭
评论加载中...