数据静态缓存技术的思考

   一个性能良好的系统,数据的读、写、查、删、改效率至关重要,其中读和查更是重中之重,本篇将以一个简单的实例来探索与数据库无关的数据静态缓存技术。所谓与数据库无关,就是无论存储数据库是何种类型,这个缓存技术都是适用的,要实现这样的数据库无关性,我们需要在数据访问层动刀,及将数据访问层进一步细分为数据库访问中间件层-数据缓存层-数据访问层,其中:

   数据库访问中间件层负责与物理数据库打交道,包括物理数据的增、删、改、查等;
   数据缓存层负责与数据库访问中间件层打交道,负责将中间件读取的数据缓存到内存中并实时同步数据库的增、删、改操作;
   数据访问层负责与数据缓存层打交道,业务逻辑层通过数据访问层公开的方法实现数据的增、删、改、查。数据访问层只与数据库访问中间件层和数据缓存层打交道,不与物理数据库打交道,查询数据时直接访问数据缓存层,增、删、改操作首先访问数据库访问中间件层,然后调用缓存层的同步方法同步操作。

   通过这样的分层方式很好的避开了各种不同的数据库缓存机制的不同而导致的开发量增加,如将数据库由MSQQLSERVER换为ACCESS,我们只需要动数据库访问中间件即可实现数据库的更改。同时,查询数据时,业务逻辑层首先在内存中查找,如果查询到直接返回查询结果,如果未查询到则将直接查询物理数据库并将查询到得结果缓存至内存,这样后续查询的时候就不需要与数据库交互了,直接由内存中查出并返回查询结果,其性能是不言而喻的。数据缓存同步机制也很重要,当物理数据库中数据发生改变时,内存中的数据应能实时或异步同步物理数据库,最简单的就是重新载入缓存,这在数据更新频率不高的系统这还可以应用,但如在数据更新频率过高的系统中显然就不适用了,因此建议在内存中直接进行数据同步而非重新载入缓存。

你可能感兴趣的:(数据静态缓存技术的思考)