【讨论】海量数据的cache替换算法,有人有思路不?

zwd2005 2009-11-14 10:16:43
一般的cache(比如主存的页面替换算法)都会给每个元素一个权重(访问频率,时间等),然后用堆来做。
不过对于海量数据(比如web页面),不可能全部加在到内存中,想cache用户经常访问的page,把所有页面都加权重,建堆也是不大可能的。、

抛砖引玉

我的一个想法是cache最近的一些页面,比如给每个页面一个权重(最近时间,近期访问次数),长时间没有访问的页面权重会变得很低,这样能限制堆的大小。
...全文
228 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
绿色夹克衫 2009-11-14
  • 打赏
  • 举报
回复
可以试试用最后访问时间做一个优先队列!当队列长度或内存占用达到某固定值后。
每次用户访问新页面的话,就把最老的页面抛弃,把新的加入!
zwd2005 2009-11-14
  • 打赏
  • 举报
回复
用户端是可以cache,那就等同于每个用户就访问特定页面一次,但当用户量也很大的时候,服务器被请求的页面数依然很大(每个页面被请求次数可能也很多)
nosuchtracter 2009-11-14
  • 打赏
  • 举报
回复
海里数据,一般用web端缓存
cache缓存数据太大了,扛不住
利用人多力量大的原理。
先利用客户端缓存
nosuchtracter 2009-11-14
  • 打赏
  • 举报
回复
基于海量数据的数据挖掘正在逐步兴起,面对着超海量的数据,一般的挖掘软件或算法往往采用数据抽样的方式进行处理,这样的误差不会很高,大大提高了处理效率和处理的成功率。一般采样时要注意数据的完整性和,防止过大的偏差。笔者曾经对1亿2千万行的表数据进行采样,抽取出400万行,经测试软件测试处理的误差为千分之五,客户可以接受。
还有一些方法,需要在不同的情况和场合下运用,例如使用代理键等操作,这样的好处是加快了聚合时间,因为对数值型的聚合比对字符型的聚合快得多。类似的情况需要针对不同的需求进行处理。
海量数据是发展趋势,对数据分析和挖掘也越来越重要,从海量数据中提取有用信息重要而紧迫,这便要求处理要准确,精度要高,而且处理时间要短,得到有价值信息要快,所以,对海量数据的研究很有前途,也很值得进行广泛深入的研究。

不知道这个有用不
hua_zhixing_ 2009-11-14
  • 打赏
  • 举报
回复
对于处理海量数据,目前还没真正接触过,期待高手!!!
berryluo 2009-11-14
  • 打赏
  • 举报
回复
静态页面或者更新很少的可以走CDN
dotnet201 2009-11-14
  • 打赏
  • 举报
回复
web页面请求过程是,先从客户端向服务端发送请求url,服务器端再计算,向客户端返回页面。对访问频率高的数据是要进行缓存的,这个时候当然是缓存到服务器端。比如说,一个高考查询的程序。假设有50万条学生成绩。这个时候,应该是采用服务器端缓存的。服务器端缓存应该是对访问频率高,而且数据很少改变的数据信息。

33,027

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧