操作系统磁盘缓存 减少磁盘机械操作
数据库缓存 减少文件系统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 加载性能优化
本文将探讨其中的一些核心技术,包括分层与服务分离、缓存技术、负载均衡、数据库性能优化以及冗余策略。 1. 分层与服务分离 分层架构是一种常见的设计模式,它将复杂系统划分为多个层次,每个层次专注于特定的职责...
在Node.js环境下,DNS(域名系统)缓存是一个重要问题,它对性能有着直接的影响。DNS缓存是指操作系统或应用程序在首次解析域名到IP地址后,...开发者应该密切关注Node.js社区的动态,以便及时应用新的优化工具和技术。
本文旨在浅析在数据库管理系统中,如何有效进行大批量数据处理的优化技术。 首先,SQL(结构化查询语言)作为数据库管理系统的基础,是处理和查询数据库数据的主要手段。SQL的基本命令可以实现数据的增删改查,从而...
### 移动流媒体技术应用浅析 #### 流媒体技术概述 流媒体技术是一种新型的媒体传输方式,它改变了传统的媒体文件传输模式,让用户可以在数据传输的过程中即时观看媒体内容,而无需等待整个文件下载完成。流媒体...
Iris Pro 580作为上一代集显中最强大的一款,属于GT4e级别,拥有72个EU单元,并集成有128MB eDRAM高速缓存。功耗范围从4W到65W+不等,提供了高性能和低功耗的平衡。 总的来说,Intel的视频编解码技术不断进步,...
本篇文档将对JFinal的技术架构进行浅析,帮助读者理解其核心设计理念和工作原理。 1. **总体架构** JFinal 的总体架构可以分为三个层面:空间架构、逻辑架构和代码架构。 - **空间架构**:从物理部署的角度看,...
### 内存分配器dlmalloc2.8.3源码浅析 #### 1. 边界标记法 dlmalloc采用边界标记法对内存进行高效管理。这种方法通过将可用内存分割成一系列固定大小的块(chunk),每个块都有特定的头部和尾部信息用于追踪其状态...
这篇论文“浅析手机电视技术及其应用”深入探讨了这一领域的关键技术、发展趋势以及实际应用。 首先,手机电视技术的基础是数字广播技术,如DVB-H(Digital Video Broadcasting - Handheld)、DMB(Digital ...
浅析 JSP、ASP 与 PHP 技术 本文对 JSP、ASP 和 PHP 三种动态网页技术进行了比较和分析,从编程语言、平台支持和应用性能三个方面对这三个技术的特点进行了讨论。 首先,对 CGI(Common Gateway Interface)进行了...
本文将探讨其中的关键技术,包括WEB应用框架的选择、前端和后端分离、图片缓存技术。 首先,WEB应用框架是构建导购网站的基础。传统的JAVA Struts框架由于其复杂性,可能不适应快速迭代的需求。相比之下,DJANGO/...
Linux Tracing System是一种用于监测和分析操作系统内核行为的技术,它可以帮助开发者和系统管理员深入了解系统的运行情况,定位性能瓶颈和安全问题。在Linux系统中,有许多不同的追踪技术,包括Kprobe、Tracepoint...
### 浅析Dalvik虚拟机JIT技术的实现 #### 引言 随着移动设备的普及,Android系统作为全球最大的移动操作系统之一,其性能优化一直是开发者关注的重点。Dalvik虚拟机,作为Android早期的核心组件,引入了即时编译...
在“移动边缘计算MEC技术原理及其应用浅析”这个主题中,我们将深入探讨MEC的核心概念、技术特点以及其在不同领域的实际应用。 1. MEC技术原理 MEC的基本思想是在移动网络的边缘节点部署计算资源和服务,这些节点...
Cookies是一种在客户端和服务器之间传递信息的技术,主要用于会话管理、个性化设置等。服务器通过`Set-Cookie`响应头向客户端发送Cookies,客户端在后续请求中会自动附带`Cookie`头,将Cookies回传给服务器。例如,...
它允许网页在不重新加载整个页面的情况下,与服务器交换数据并更新部分网页内容,这就是常说的Ajax(Asynchronous JavaScript and XML)技术的基础。然而,在使用XMLHttpRequest时,可能会遇到一个常见问题,即数据...
### 计算机网络数据包捕获技术浅析 随着信息技术的迅猛发展,网络安全成为了一个不容忽视的问题。本文探讨了在网络环境下如何通过数据包捕获技术来保障信息安全,并提出了两种有效的数据包捕获方法。 #### 一、...
同时,为了提高性能,可以使用缓存技术、分页和搜索功能。另外,注册和登录系统、用户权限管理、邮件通知等也是论坛必不可少的部分。 总的来说,制作一个ASP论坛需要对ASP语法、数据库操作、HTML和CSS有扎实的理解...