`
hanwesley
  • 浏览: 58954 次
  • 性别: 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 加载性能优化

    云端高性能技术架构浅析.pdf

    本文将探讨其中的一些核心技术,包括分层与服务分离、缓存技术、负载均衡、数据库性能优化以及冗余策略。 1. 分层与服务分离 分层架构是一种常见的设计模式,它将复杂系统划分为多个层次,每个层次专注于特定的职责...

    Nodejs下DNS缓存问题浅析

    在Node.js环境下,DNS(域名系统)缓存是一个重要问题,它对性能有着直接的影响。DNS缓存是指操作系统或应用程序在首次解析域名到IP地址后,...开发者应该密切关注Node.js社区的动态,以便及时应用新的优化工具和技术。

    浅析数据库管理系统中大批量数据处理的优化技术.pdf

    本文旨在浅析在数据库管理系统中,如何有效进行大批量数据处理的优化技术。 首先,SQL(结构化查询语言)作为数据库管理系统的基础,是处理和查询数据库数据的主要手段。SQL的基本命令可以实现数据的增删改查,从而...

    移动流媒体技术应用浅析

    ### 移动流媒体技术应用浅析 #### 流媒体技术概述 流媒体技术是一种新型的媒体传输方式,它改变了传统的媒体文件传输模式,让用户可以在数据传输的过程中即时观看媒体内容,而无需等待整个文件下载完成。流媒体...

    Intel视频编解码技术浅析.pdf

    Iris Pro 580作为上一代集显中最强大的一款,属于GT4e级别,拥有72个EU单元,并集成有128MB eDRAM高速缓存。功耗范围从4W到65W+不等,提供了高性能和低功耗的平衡。 总的来说,Intel的视频编解码技术不断进步,...

    JFinal技术架构浅析.doc

    本篇文档将对JFinal的技术架构进行浅析,帮助读者理解其核心设计理念和工作原理。 1. **总体架构** JFinal 的总体架构可以分为三个层面:空间架构、逻辑架构和代码架构。 - **空间架构**:从物理部署的角度看,...

    内存分配器dlmalloc2.8.3源码浅析

    ### 内存分配器dlmalloc2.8.3源码浅析 #### 1. 边界标记法 dlmalloc采用边界标记法对内存进行高效管理。这种方法通过将可用内存分割成一系列固定大小的块(chunk),每个块都有特定的头部和尾部信息用于追踪其状态...

    浅析手机电视技术及其应用-论文.zip

    这篇论文“浅析手机电视技术及其应用”深入探讨了这一领域的关键技术、发展趋势以及实际应用。 首先,手机电视技术的基础是数字广播技术,如DVB-H(Digital Video Broadcasting - Handheld)、DMB(Digital ...

    浅析JSP、ASP与PHP技术.pdf

    浅析 JSP、ASP 与 PHP 技术 本文对 JSP、ASP 和 PHP 三种动态网页技术进行了比较和分析,从编程语言、平台支持和应用性能三个方面对这三个技术的特点进行了讨论。 首先,对 CGI(Common Gateway Interface)进行了...

    精品资料(2021-2022年收藏)浅析导购网站关键技术设计.doc

    本文将探讨其中的关键技术,包括WEB应用框架的选择、前端和后端分离、图片缓存技术。 首先,WEB应用框架是构建导购网站的基础。传统的JAVA Struts框架由于其复杂性,可能不适应快速迭代的需求。相比之下,DJANGO/...

    Linux Tracing System浅析 & eBPF框架开发分享

    Linux Tracing System是一种用于监测和分析操作系统内核行为的技术,它可以帮助开发者和系统管理员深入了解系统的运行情况,定位性能瓶颈和安全问题。在Linux系统中,有许多不同的追踪技术,包括Kprobe、Tracepoint...

    浅析dalvik虚拟机JIT技术的实现.doc

    ### 浅析Dalvik虚拟机JIT技术的实现 #### 引言 随着移动设备的普及,Android系统作为全球最大的移动操作系统之一,其性能优化一直是开发者关注的重点。Dalvik虚拟机,作为Android早期的核心组件,引入了即时编译...

    移动边缘计算MEC技术原理及其应用浅析 .zip

    在“移动边缘计算MEC技术原理及其应用浅析”这个主题中,我们将深入探讨MEC的核心概念、技术特点以及其在不同领域的实际应用。 1. MEC技术原理 MEC的基本思想是在移动网络的边缘节点部署计算资源和服务,这些节点...

    浅析http协议、cookies和session机制、浏览器缓存.docx

    Cookies是一种在客户端和服务器之间传递信息的技术,主要用于会话管理、个性化设置等。服务器通过`Set-Cookie`响应头向客户端发送Cookies,客户端在后续请求中会自动附带`Cookie`头,将Cookies回传给服务器。例如,...

    浅析XMLHttpRequest的缓存问题

    它允许网页在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容,这就是常说的Ajax(Asynchronous JavaScript and XML)技术的基础。然而,在使用XMLHttpRequest时,可能会遇到一个常见问题,即数据...

    计算机网络数据包捕获浅析

    ### 计算机网络数据包捕获技术浅析 随着信息技术的迅猛发展,网络安全成为了一个不容忽视的问题。本文探讨了在网络环境下如何通过数据包捕获技术来保障信息安全,并提出了两种有效的数据包捕获方法。 #### 一、...

    ASP论坛制作浅析

    同时,为了提高性能,可以使用缓存技术、分页和搜索功能。另外,注册和登录系统、用户权限管理、邮件通知等也是论坛必不可少的部分。 总的来说,制作一个ASP论坛需要对ASP语法、数据库操作、HTML和CSS有扎实的理解...

Global site tag (gtag.js) - Google Analytics