暂存架性能提升之道

    暂存架是为方面用户使用而提供的一个临时功能。当前有很多语言很多种方案来实现暂存架,以提高系统的友好访问。这次,我们在传统实现方案的基础上,又做了一些改进,使暂存架的功能更成熟、更完美。由于暂存架的实现并不是特别的复杂,所以本文仅从理论方面介绍暂存架的设计方案。


    暂存架的数据存取方案通常有两种:一种是保存到数据库中;另一种是保存到本地。除非临时存储的数据量特别大,否则临时存储数据都是存储在本地。数据保存到本地通常又分为两种,一种是保存到内存中,另一种是放在文件中,比如Cookie。如果暂存架中的生命周期特别短,而且又频繁访问,那么我们将其放在内存中。对于类似购物车这样的暂存架,我们通常将其放在Cookie中,因为Cookie能较长时间的保存数据,而且读取速率也比普通文件快。

    由于一个Cookie文件最大只能存放4k的数据量,因此我们只能将最重要的信息存放在Cookie中。超出4k容量之外的数据,我们放在哪里呢?

    我们的解决方案是:将最重要的数据,比如文件的标识位Id存放到Cookie中,4K大小的文件足够存储成千上万个Id,也就足够存储所有的数据。那么接下来应该如何读取数据呢?

    如果将所有的数据都去数据库中读取,那Cookie中存放的Id完全就可以省略,因为那样起不到快速读取数据的作用。我们的方案是将第一次从数据库取出来的数据放到内存中,然后从内存中读取,如果内存中数据失效之后,我们就根据Id去数据库中读取,然后将这些数据再放进内存中,以此保持高效、准确的读取数据。

  尽管此种方案在实现起来比较繁琐,但是对于提高系统的性能来说,又算的了什么呢?而且这种方案还能实现暂存架的分页呢!

 

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值