`
hanwesley
  • 浏览: 56948 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

缓存技术浅析

 
阅读更多

 

操作系统磁盘缓存        减少磁盘机械操作

数据库缓存                 减少文件系统I/O

应用程序缓存              减少对数据库的查询 

Web服务器缓存         减少应用服务器请求

客户端浏览器缓存       减少对网站的访问


数据库缓存:

 数据库通常是企业应用系统最核心的部分
 数据库保存的数据量通常非常庞大
 数据库查询操作通常很频繁,有时还很复杂
 以上原因造成数据库查询会引起非常频繁的磁盘I/O读取操作,迫使CPU挂起等待,数据库性能极度低下
数据库有哪些缓存策略?
 Query Cache
 Data Buffer


以SQL作为key值缓存查询结果集
 一旦查询涉及的表记录被修改,缓存就会被自动删除
 设置合适的Query Cache会极大提高数据库性能
Query Cache并非越大越好,过大的Qquery Cache会浪费内存。
MySQL: query_cache_size= 128M


MySQL Query Cache监控工具
show status like 'Qcache%';
mysqlreport脚本
MySQL Administrator


data buffer是数据库数据在内存中的容器
data buffer的命中率直接决定了数据库的性能
data buffer越大越好,多多益善
MySQL的InnoDB buffer:innodb_buffer_pool_size = 2G
MySQL建议buffer pool开大到服务器物理内存60-80%


MySQL buffer 监控工具
show innodb status\G
show status like 'innodb%';
mysqlreport脚本
innotop


应用程序缓存概述
对象缓存
查询缓存
页面缓存
 动态页面静态化
 Servlet缓存
 页面内部缓存

 

对数据库查询结果集进行缓存,类似数据库的Query Cache

适用于一些耗时,但是时效性要求比较低的场景。查询缓存和对象缓存适用的场景不一样,是互为补充的

当查询结果集涉及的表记录被修改以后,需要注意清理缓存

 

 

 

页面缓存的作用是什么?

 针对页面的缓存技术不但可以减轻数据库服务器压力,还可以减轻应用服务器压力

 好的页面缓存可以极大提高页面渲染速度

 页面缓存的难点在于如何清理过期的缓存

页面缓存技术有哪些?

 动态页面静态化 利用模板技术静态化,请求直接访问静态页面。可以使用AJAX请求弥补动态页面静态化后的某些缺点;

 Servlet缓存

 页面局部缓存


 

通用缓存产品:
memcached
 在大规模互联网应用下使用
 每秒支撑1.5万~2万次请求


Web服务器端缓存技术

基于代理服务器模式的Web服务器端缓存
 squid/nginx
Web服务器缓存技术被用来实现CDN(内容分发网络 content delivery network)
 被国内主流门户网站大量采用
 不需要编程,但仅限于新闻发布类网站,页面实时性要求不高

基于Ajax的缓存代码:

<script language="JavaScript">  

#   <!--  

# var cache_data = new Array();//定义全局变量用来保存缓存数据  

#     function gopageCache(option,obj){  

#     var page = $("#page2").html() * 1;    

#     if(option == '+'){  

#         page ++ ;  

#         var url = "data.php?page="+page + "&r="+Math.random();  

#     }else{  

#         page --;  

#         if(page < 1)page =1;  

#         var url = "data.php?page="+page + "&r="+Math.random();  

#   

#     }  

# /*下面是缓存增加的部分*/  

#     if( (cache_data[page] !=null) && (cache_data[page].length > 1) ) {  

# //如果缓存存在,则直接调用缓存数据,不用再去服务器进行数据请求  

#         alert('cache hit');  

#         $("#data2").html(cache_data[page]);  

#         $("#page2").html(page);  

#         return true;  

#     }  

#     $("#page2").html(page);  

#     obj.disabled = true;  

#     $("#data2").html("loading(cache enabled)...");    

#     $("#data2").load(url,  

#         {limit: 25},  

#              function(responseText) { obj.disabled = false;  

#                             cache_data[page] = responseText;//将当前的数据存入到内存(缓存变量)中 }  

#         );  

#   

#     }  

#   

#   //-->  

#   </script>  

# <input value="<" onclick="gopageCache('-',this)" type="button">  

# <input value=">" onclick="gopageCache('+',this)" type="button">  

#   page:<span id="page2">1</span>  

# <div style="border: 2px solid red; padding: 2px;" id="data2">data area</div> 


分享到:
评论

相关推荐

    H5 缓存机制浅析 - 移动端 Web 加载性能优化.pdf

    H5 缓存机制浅析 - 移动端 Web 加载性能优化

    云端高性能技术架构浅析

    通过查阅资料,了解现有大型网站的技术架构,发现目前常用的技术有分层、缓存、负载均衡、数据库性能优化,分布式系统等等。接下类分别对这些技术进行简单介绍。无论OSI的7层网络结构,还是计算机底层硬件与上层软件...

    浅析RDMA网络下MMU水线设置.pdf

    为保障RDMA的稳定运行,基础网络需要提供端到端无损零丢包及超低延时的能力,这也催生了PFC、ECN等网络流控技术在RDMA网络中的部署。在RDMA网络中,如何合理设置MMU(缓存管理单元)水线是确保RDMA网络无损和低延时...

    浅析云数据中心网络技术特性

    随着云计算、移动互联网、Web2.0等新业务的兴起,传统的数据...网络是云数据中心的重要组成部分之一,云数据中心的网络架构必须具备五大新技术特性:100G以太网技术、浪涌缓存、网络虚拟化、统一交换、绿色节能技术。

    通信与网络中的浅析高性能数据包处理器拥有的高网络吞吐量

    该处理器基于最新的多核Cavium OCTEON II CN6335-AAP应用程序加速器处理器,结合多种先进技术,网络速度更高,网络具有更先进的安全功能。全面的开发包能够缩短投资回报时间,WANic 6354为客户带来可持续竞争优势。...

    asp.net知识库

    ASP.NET 2.0 缓存技术 (原创) asp.net 2.0中的theme主题覆盖问题 asp.net 2.0中利用app_offline.htm功能 .NET 2.0中的字符串比较 小试ASP.NET 2.0的兼容性 为 asp.net 2.0 的菜单控件增加 target 属性 ASP.NET 2.0...

    高性能高并发服务器架构大全

     CommunityServer性能问题浅析 250 鸡肋式的多站点支持 250 内容数据的集中式存储 250 过于依赖缓存 250 CCS的雪上加霜 250 如何解决? 251  Digg PHP's Scalability and Performance 251  YouTube ...

    Grails 技术精解与Web开发实践【源码+样章】----下载不扣分,回帖加1分,欢迎下载,童叟无欺

    第19章 浅析Grails的源程序 231 19.1 准备工作 231 19.1.1 下载源码 231 19.1.2 编译Grails源码 231 19.2 HibernateCriteriaBuilder的原理 233 19.3 开启Hibernate Query Cache 237 19.4 本章小结 241 第20章 未来...

    网吧维护技术资料 合集

    4457 网吧维护\资料\USB技术白皮书.TXT 18967 网吧维护\资料\WIN XP控制台命令详解.TXT 1221 网吧维护\资料\WIN XP系统内置的AT命令.TXT 7349 网吧维护\资料\WIN XP远程控制时保证安全必读.TXT 2902 网吧维护\资料\...

    代码之美(中文完整版).pdf

    5.8 版本 6:第四次优化:缓存(Caching) 5.9 从故事中学到的 第6章 集成测试框架:脆弱之美 6.1. 三个类搞定一个验收测试框架 6.2. 框架设计的挑战 6.3. 开放式框架 6.4. 一个HTML解析器可以简单到什么程度? 6.5. ...

Global site tag (gtag.js) - Google Analytics