免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: yanyangtian4502

从案例引发的对缓存设计的思考,干货讨论,绝对不玩虚的(获奖名单已公布-2012-6-13) [复制链接]

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
发表于 2012-05-17 23:04 |显示全部楼层
回复 60# chenyx


    额,我只是在主页上大概看了一下

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
发表于 2012-05-17 23:08 |显示全部楼层
回复 60# chenyx


    看到了,农业银行是ASP的

论坛徽章:
0
发表于 2012-05-18 08:53 |显示全部楼层
Gray1982 发表于 2012-05-17 15:50
这Windows的配置真多,IIS我是好久没搞了,一直Linux
在WEB也就是页面级缓存,常用的Varnish,Squid, ...

刘鑫兄,我也知道nginx 缓存少量不错,但是这个少量怎么限定呢?按照文件数还是空间?希望不啬赐教

论坛徽章:
0
发表于 2012-05-18 10:04 |显示全部楼层
大家回复的比较踊跃,但是,这么感觉和主题不这么相符合,
我还是继续按照之前的来说把。

2.半缓存
其实这个缓存策略,是这样的:

例如用户在查询某些数据的时候,我们把前几页的数据,假设100条,每页是20条,我们就把前5页的数据缓存起来,如果用户翻页翻到了第6页,或者更后面,那么,我们就单独的去取那一页的数据,但是取出来之后不缓存,
之所以这么做,主要是:很少有用户那么有耐心一直的翻页,很多时候,用户看前3页的数据就了不得了。

这种缓存的策略,应该非常实用,如果站点的搜索功能是主要的功能,那么,这个策略可以在内存和性能方面取得平衡。

论坛徽章:
0
发表于 2012-05-18 10:12 |显示全部楼层
我还是把这三种缓存策略说完,现在说说第三种:
3.基于统计的缓存

顾名思义,就是收集一定的信息,然后做出分析,利用分析的结果来有效的缓存数据。

这里,我以电子商务为例子,例如用户在搜索某产品,那么,我们就把每次用户输入的一些条件的关键字收集起来进行分析,然后对关键字出现频率进行统计分析,
之后,就得出那些出现频率比较高的关键字,然后就把这些关键字对应的产品缓存起来,至于如何缓存这些数据,这个时候,完全可以结合之前的“全缓存”和“半缓存“策略一起使用。

那么,当用户在查找产品的时候,如果他输入的关键字在缓存中的缓存键之中,那么,就把数据返回给用户。

这里,我们完全可以发挥更多的思考:例如,更加关键字出现的不同频率设置不同的缓存时间。那么实现起来可能稍微麻烦一点。

但是,这样的缓存策略依然可以进一步的改进,我们在后面会谈到这个问题的。

论坛徽章:
0
发表于 2012-05-18 12:06 |显示全部楼层
回复 63# coralzd

简单的说
一是需要看缓存文件的数量,大小,也就是看IO是不是目前的瓶颈
一是看并发访问的数量

论坛徽章:
0
发表于 2012-05-18 12:08 |显示全部楼层
yanyangtian4502 发表于 2012-05-18 10:04
大家回复的比较踊跃,但是,这么感觉和主题不这么相符合,
我还是继续按照之前的来说把。


这个好像是预读吧???像UC就是可以把下页的内容预读存越来。

论坛徽章:
54
2017金鸡报晓
日期:2017-02-08 10:39:42操作系统版块每日发帖之星
日期:2016-03-08 06:20:00操作系统版块每日发帖之星
日期:2016-03-07 06:20:00操作系统版块每日发帖之星
日期:2016-02-22 06:20:00操作系统版块每日发帖之星
日期:2016-01-29 06:20:00操作系统版块每日发帖之星
日期:2016-01-27 06:20:00操作系统版块每日发帖之星
日期:2016-01-20 06:20:00操作系统版块每日发帖之星
日期:2016-01-06 06:20:0015-16赛季CBA联赛之江苏
日期:2015-12-21 20:00:24操作系统版块每日发帖之星
日期:2015-12-21 06:20:00IT运维版块每日发帖之星
日期:2015-11-17 06:20:002015亚冠之广州恒大
日期:2015-11-12 10:58:02
发表于 2012-05-18 22:44 |显示全部楼层
本帖最后由 lsstarboy 于 2012-05-18 22:51 编辑

简单说一下LAMP(其实我最常用的是FAMP,F代表FreeBSD)中用对缓存有印象的地方:

1、php加速器的的缓存,比如Xcache,不要以为它们只是加速器,只是对php进行了“预编译”,其实它们还提供了一部分缓存。就Xcache来说,它提供了一系列的函数来进行缓存,大多数的php框架系统都已经利用这个功能,但是这些框架都很小心地使用这部分缓存,一般只是用来缓存配置,因为无法确定它的大小,一旦需要量超过这部分内存的大小,那么将出现大的问题。如果是自己搞的系统,并且内存足够大,完全可以把它弄大一些。它不仅可以缓存配置,还可以缓存数据库的查询,甚至可以把一些公用的页面部分缓存进去,比如网页的header、footer等。Xcache专门提供了一个页面来监测这部分内存的使用,统计中还包括了命中率,这对分析网站的性能很有帮助。

2、文件缓存和数据库查询的IO平衡:有很多时候必须使用文件缓存,想避开频繁的数据库查询,但是如果在程序中对文件控制不当,就会使缓存的文件数量比较多,造成了频繁的IO,结果还不如使用数据库来的快。如果发现缓存目录中有成千上万个文件,那还是把它们塞进数据库中要好一些。
  同样情况的还有tcp的生存时间,多大才是最佳的?在访问量大的服务器上,如果做的太大,将会导致大量的半连接,如果做的太小,连接能力上来了,但是传输大文件的时候却又慢下来。


3、Mysql可以用很大的缓存,只要机器有空余的内存,可以分配给mysql好几个G,它都会好好利用,不要吝啬内存,也不要怀疑mysql管理缓存的能力。

4、具体到FreeBSD的防火墙,在默认情况下,做状态规则(也类似于缓存的规则)时,访问量稍大点就会把服务器搞得拒绝服务,所以大多数情况下都是关闭防火墙,特别是ipfw,更是典型(后来才发现ipfw默认只开了4K的状态规则)。

论坛徽章:
0
发表于 2012-05-19 07:40 |显示全部楼层
嗯·你写的已经很详细了·我也在细心阅读和学习中·你们有什么联系方式吗?我们以后好联系交流啊·当然有什么事情可以再论坛上发表的·

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
发表于 2012-05-19 08:15 |显示全部楼层
yanyangtian4502 发表于 2012-05-18 10:04
大家回复的比较踊跃,但是,这么感觉和主题不这么相符合,
我还是继续按照之前的来说把。

这个想法很奇特.
一般的缓存策略,是前端有squid之类的缓存服务,后端做伪静态,楼主的那个是如何实现N页之后不缓存的,请教下.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP