页面缓存

。一个网页中不同区域的内容,自身更新频率和呈现及时度要求各不相同,如果为迁就频繁更新的区域,而使整个页面频繁重建缓存,则影响整体吞吐率。

。即使是采用局部动态缓存,如果局部区域过多,则会使得页面结构过于复杂,而且整合各个局部页面也存在不小的开销。

。有些计算是无法作为页面缓存的,比如有些动态内容中需要获取用户的登录状态,并根据不同用户呈现不同的内容。

。这些页面缓存都只是提高了读数据的速度,并没有提高写数据的速度。

 

数据项过期时间:

由于缓存空间是 有限的,一旦缓存区没有足够的空间存储新的数据项时,memcached便会想办法淘汰一些数据项来腾出空间,淘汰机制基于LRU(Least Recently Userd)算法,将最近不经常访问的数据项淘汰掉。

 

当然,我们更愿意为数据项设置过期时间,这样他可以很有面子的离开缓存区。至于过期时间的取值,这需要你根据自己的站点来把握平衡,他们的道理都是相似的。

 

对象序列化

基于序列化(Serialize)机制,我们可以将更高层次的抽象数据类型转化为二进制字符串,以便通过网络进入缓存服务器,同时,在读取这些数据的时候,二进制字符串又可以转换回原有的数据类型。

但是有一点需要清楚的是,当我们试图将一个类的对象(或类得实例)进行序列化时,对象的成员函数是不被序列化的,而被序列化存储的只是对象的数据成员。当需要从持久化数据中恢复对象(反序列化)时,我们首先会实例化另外一个新的对象,然后将之前持久化的数据成员依次赋值给新对象的相应数据成员。

 

这里说一下我们熟悉的JSON格式,便可以很好地应用在序列化中,任何数组和对象可以很容易地与JSON格式的字符串互相转换,而且转换所需的计算量并不大。

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值