java缓存技术的介绍

java缓存技术的介绍一、什么是缓存1、Cache是高速缓冲存储器一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为Cache二、缓存的分类1、基于web应用的系统架构图2、在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存操作系统磁盘缓存->减少磁盘机械操作

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

一、什么是缓存
1、Cache是高速缓冲存储器 一种特殊的存储器子系统,其中复制了频繁使用的数据以利于快速访问
2、凡是位于速度相差较大的两种硬件/软件之间的,用于协调两者数据传输速度差异的结构,均可称之为 Cache

二、缓存的分类
1、基于web应用的系统架构图

java缓存技术的介绍

2、在系统架构的不同层级之间,为了加快访问速度,都可以存在缓存

  • 操作系统磁盘缓存->减少磁盘机械操作
  • 数据库缓存->减少文件系统I/O
  • 应用程序缓存->减少对数据库的查询 
  • Web服务器缓存->减少应用服务器请求
  • 客户端浏览器缓存->减少对网站的访问

三、操作系统缓存
1、文件系统提供的Disk Cache:操作系统会把经常访问到的文件内容放入到内存当中,由文件系统来管理
2、当应用程序通过文件系统访问磁盘文件的时候,操作系统从Disk Cache当中读取文件内容,加速了文件读取速度
3、Disk Cache由操作系统来自动管理,一般不用人工干预,但应当保证物理内存充足,以便于操作系统可以使用尽量多的内存充当Disk Cache,加速文件读取速度
4、特殊的应用程序对文件系统Disk Cache有很高的要求,会绕开文件系统Disk Cache,直接访问磁盘分区,自己实现Disk 
5、Cache策略

  • Oracle的raw device(裸设备) – 直接抛弃文件系统
  • MySQL的InnoDB: innodb_flush_method = O_DIRECT

四、数据库缓存
1、重要性

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

2、缓存策略
     a、Query Cache

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

     b、Data Buffer

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

五、应用程序缓存
1、对象缓存

  • 由O/R Mapping框架例如Hibernate提供,透明性访问,细颗粒度缓存数据库查询结果,无需业务代码显式编程,是最省事的缓存策略
  • 当软件结构按照O/R Mapping框架的要求进行针对性设计,使用对象缓存将会极大降低Web系统对于数据库的访问请求
  • 良好的设计数据库结构和利用对象缓存,能够提供极高的性能,对象缓存适合OLTP(联机事务处理)应用

2、查询缓存

  • 对数据库查询结果集进行缓存,类似数据库的Query Cache
  • 适用于一些耗时,但是时效性要求比较低的场景。查询缓存和对象缓存适用的场景不一样,是互为补充的
  • 当查询结果集涉及的表记录被修改以后,需要注意清理缓存

3、页面缓存
     a、作用

    • 针对页面的缓存技术不但可以减轻数据库服务器压力,还可以减轻应用服务器压力
    • 好的页面缓存可以极大提高页面渲染速度
    • 页面缓存的难点在于如何清理过期的缓存

    b、分类
         I、动态页面静态化

    • 利用模板技术将访问过一次的动态页面生成静态html,同时修改页面链接,下一次请求直接访问静态链接页面
    • 动态页面静态化技术的广泛应用于互联网CMS/新闻类Web应用,但也有BBS应用使用该技术,例如Discuz!
    • 无法进行权限验证,无法显示个性化信息
    • 可以使用AJAX请求弥补动态页面静态化的某些缺点

        II、Servlet缓存

    • 针对URL访问返回的页面结果进行缓存,适用于粗粒度的页面缓存,例如新闻发布
    • 可以进行权限的检查
    • OScache提供了简单的Servlet缓存(通过web.xml中的配置)
    • 也可以自己编程实现Servlet缓存

        III、页面内部缓存

    • 针对动态页面的局部片断内容进行缓存,适用于一些个性化但不经常更新的页面(例如博客)
    • OSCache提供了简单的页面缓存
    • 可以自行扩展JSP Tag实现页面局部缓存

六、web服务器端缓存

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

七、基于ajax的浏览器缓存

  • 使用AJAX调用的时候,将数据库在浏览器端缓存
  • 只要不离开当前页面,不刷新当前页面,就可以直接读取缓存数据
  • 只适用于使用AJAX技术的页面
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/185722.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • p90灯珠和p70灯珠区别_pc50是什么材料

    p90灯珠和p70灯珠区别_pc50是什么材料p50,p90,p99(或者写作pct50,pct90,pct99)都是数据聚合统计一种方式,跟百分比相关。p50:数据集按升序排列,第50分位置大的数据(即升序排列后排在50%位置的数据)。p90:数据集按升序排列,第90分位置大的数据(即升序排列后排在90%位置的数据)。p99:数据集按升序排列,第99分位置大的数据(即升序排列后排在99%位置的数据)。有什么实际含义和用处?经常用来衡量服务响应延迟。以最常用的p99为例,它衡量了99%的情况下能达到的最大延迟,99%的请求都低于

    2022年10月31日
  • 全国计算机等级考试二级Python真题及解析(5)_计算机二级有必要考吗

    全国计算机等级考试二级Python真题及解析(5)_计算机二级有必要考吗【纯干货】2021全国计算机等级考试Python二级编程题真题详解(上)相较于大多数经验分享类文章,本篇重点在于总结Python二级考试中的编程题(占60分)题型范围及解题技巧,让Python小白能在一周内掌握绝大多数编程题的解题方法,顺利考取证书,为未来应聘岗位添砖加瓦!本文的最终的目的是得到一份能够涵盖编程题部分所有考点的知识点总结脑图!!!

  • HOG(方向梯度直方图)

    HOG(方向梯度直方图)

  • 如何用ghost备份系统_服务器raid5如何做备份恢复

    如何用ghost备份系统_服务器raid5如何做备份恢复‍电脑安装完系统后,要及时对系统进行备份,这样系统出现什么问题,就可以快速恢复。我们可以用手动Ghost工具对系统进行备份操作。下面和系统城小编一起了解手动Ghost备份系统的具体操作。1、重启电脑,快速按F8,进入DOS界面,运行Ghost.exe;2、选择Local(本机)——Partition(分区)——ToImage(镜像),备份镜像文件到指定文件夹;3、选择备份源的磁盘驱动器(电脑硬盘…

  • 前端APP开发

    前端APP开发APP开发概述1、WebAppWebApp开发,严格来说并不是一个APP软件,只是一个Web型的微网站。优点:开发时间短、兼容性强、方便系统移植。缺点:必须有网络的支持,用户体验相对差,对于手机的一些原生底层功能不能实现。2、NativeAppNativeApp就是一个原生的App软件,主要是通过Java或者其他代码来实现原生的AndroidQ或者iOS手机的App软件。优点:原生App、用户体验非常好、可以调用手机的底层组件。缺点:开发时间长、兼容性差、必须掌握Java等编程语言。3

  • tomcat日志设置与详解

    tomcat日志设置与详解1   Tomcat日志概述Tomcat日志信息分为两类:一是运行中的日志,它主要记录运行的一些信息,尤其是一些异常错误日志信息。二是访问日志信息,它记录的访问的时间,IP,访问的资料等相关信息。2   Tomcat日志配置2.1&nb…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号