这篇文章源自于:
http://www.iteye.com/topic/77195
其中很多人谈到了缓存命中率的问题,应用缓存的命中率取决于很多的因素:
1、应用场景
是oltp还是olap应用,即使是oltp,也要看访问的频度,一个极少被访问到的缓存等于没有什么效果。一般来说,互联网网站是非常适合缓存应用的场景。
2、缓存的粒度
毫无疑问,缓存的粒度越小,命中率就越高,对象缓存是目前缓存粒度最小的,因此被命中的几率更高。举个例子来说吧:你访问当前这个页面,浏览帖子,那么对于orm来说,需要发送n条sql,取各自帖子user的对象。很显然,如果这个user在其他帖子里面也跟贴了,那么在访问那个帖子的时候,就可以直接从缓存里面取这个user对象了。
3、架构的设计
架构的设计对于缓存命中率也有至关重要的影响。例如你应该如何去尽量避免缓存失效的问题,如何尽量提供频繁访问数据的缓存问题,这些都是考验架构师水平的地方。再举个例子来说,对于论坛,需要记录每个topic的浏览次数,所以每次有人访问这个topic,那么topic表就要update一次,这意味着什么呢?对于topic的对象缓存是无效的,每次访问都要更新缓存。那么可以想一些办法,例如增加一个中间变量记录点击次数,每累计一定的点击,才更新一次数据库,从而减低缓存失效的频率。
4、缓存的容量和缓存的有效期
缓存太小,造成频繁的lru,也会降低命中率,缓存的有效期太短也会造成缓存命中率下降。
所以缓存命中率问题不能一概而论,一定说命中率很低或者命中率很高。但是如果你对于缓存的掌握很精通,有意识的去调整应用的架构,去分解缓存的粒度,总是会带来很高的命中率的。
这里我可以举一个实际的案例,javaeye2.0网站在使用对象缓存之前,通过mysql的监控工具进行观察,在连续24小时的平均每秒发送sql条数超过了200条,在使用对象缓存之后,连续24小时的平均每秒发送sql条数下降到了120条左右,几乎下降了一半。
考虑到很多sql都是分页语句,关联查询,条件查询,集合操作,都是不能被缓存的sql,而真正能够被缓存的sql只有根据主键查询对象和对象关联对象的查询。所以真正能够被缓存的sql估计最多占所有sql的60%。所以换算下来,应用缓存的命中率之高,已经相当惊人了。
不过这里要提醒的一点,有将近一半的sql都被缓存,不意味着性能可以提升一倍。这是因为能够被缓存的都是按照主键查询单条记录的sql,这些sql本身即使发送到数据库,对数据库造成的压力也没有想像的那么大。真正对数据库造成庞大压力的正是那些没有索引的大表查询,和造成了全表扫描的关联查询,这些一旦涉及到全表扫描的查询,才是性能的真正杀手。当然了,不管怎么说,通过使用对象缓存,是毫无疑问可以大幅度降低数据库的负载压力的,有效提升web应用的性能的。
关于这一点,我再给出一组数据来加深大家的印象,通过使用操作系统网络工具进行统计:
javaeye网站web server的端口每秒数据流量是2mb;
javaeye网站的mysql数据库端口的每秒数据流量是1.2mb;
而网站的memcached的端口每秒的数据流量高达5mb。
- 2007-05-09 14:19
- 浏览 26160
- 评论(25)
- 论坛回复 / (24 / 25183)
- 分类:企业架构
相关推荐
[net 4.0面向对象编程漫谈 应用篇].金旭亮---高清版.pdf 个人收集电子书,仅用学习使用,不可用于商业用途,如有欧洲杯足彩官网的版权问题,请联系删除!
null 博文链接:https://lingqi1818.iteye.com/blog/1106621
net 4.0面向对象编程漫谈 应用篇(电子书),分享给大家,欢迎大家学习
漫谈应用广泛的金属材料.pptx
深入浅出的描述了对数的发展历程及对数在计算机发展历史上的应用,有兴趣可以读一读
大厂高手骆俊武出品的《漫谈线上问题排查》电子书
华为防火墙技术漫谈》介绍华为传统防火墙关键技术原理、应用场景和配置方法,主要包括安全策略、攻击防范、nat、双机热备、选路,并结合网上案例给出以上技术的综合应用配置举例,以防火墙网上实际需求为导向,采用...
架构漫谈(三):如何做好架构之识别问题 架构漫谈(四):如何做好架构之架构切分 架构漫谈(五):什么是软件 架构漫谈(六):软件架构到底是要解决什么问题? 架构漫谈(七):不要空设架构师这个职位,给他实权...
漫谈兼容内核之一:reactos怎样实现系统调用 漫谈兼容内核之二:关于kernel-win32的对象管理 漫谈兼容内核之三:kernel-win32的文件操作 漫谈兼容内核之四:kernel-win32的进程管理 漫谈兼容内核之五:kernel-win32...
谈兼容内核之一:reactos怎样实现系统调用.pdf 漫谈兼容内核之二:关于kernel -win32的对象管理.pdf 漫谈兼容内核之三:关于kernel-win32的文件操作.pdf 漫谈兼容内核之四:kernel-win32的进程管理.pdf 漫谈兼容内核...
漫谈经济管理法律发展问题.doc
漫谈光电信息技术应用.pptx
华为防火墙技术漫谈,理论篇共包含十章,涵盖了会话与状态检测、安全策略、攻击防范、nat、gre 、l2tp 、ipsec 、ssl、双机热备、出口选路的原理、应用场景及配置方法
01.漫谈兼容内核之一:wine的系统结构.pdf 02.漫谈兼容内核之二:关于kernel-win32的对象管理.pdf 03.漫谈兼容内核之三:关于kernel-win32的文件操作.pdf 04.漫谈兼容内核之四:kernel-win32的进程管理.pdf 05.漫谈...
作者: (苏)ah吉洪诺夫 出版社: 湖南教育 出版时间: 1986 装帧: 平装 页数: 212页
漫谈云计算.pdf漫谈云计算.pdf漫谈云计算.pdf漫谈云计算.pdf漫谈云计算.pdf漫谈云计算.pdf
缓存一直是前端性能优化中,浓墨重彩的一笔。了解前端缓存是打造高性能网站的必要知识。之前,对于缓存的认知一直停留在看《http权威指南》和一些相关帖子的深度,过了一段时间,又总是忘记,正好最近不是很忙,结合...
漫谈兼容内核 毛德操 完整版 pdf漫谈兼容内核 毛德操漫谈兼容内核 毛德操漫谈兼容内核 毛德操
数学是一切学科的基础。应用数学是针对性的对数学于其它学科进行衔接。本书值得分析检验人员在闲余之时读一读,了解一下数学的趣味和魅力。...