
定义:原始意义是指访问速度比一般随机存取存储器(RAM)快的一种高速存储器,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。缓存的设置是所有现代计算机系统发挥高性能的重要因素之一。
原理:缓存的工作原理是当CPU要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理;没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。正是这样的读取机制使CPU读取缓存的命中率非常高(大多数CPU可达90%左右),也就是说CPU下一次要读取的数据90%都在CPU缓存中,只有大约10%需要从内存读取。这大大节省了CPU直接读取内存的时间,也使CPU读取数据时基本无需等待。总的来说,CPU读取数据的顺序是先缓存后内存。
2 web缓存
扯了这么多,其实web缓存的产生和原理跟上面一样一样的:客户端浏览器在显示一个完整网页前,需要去服务器获取一些必要的数据(js,css,image等),因为浏览器的数据处理和渲染速度很快,而通过网络传输的方式去服务器取数据的过程却很慢(虽然现在网速还算比较快,下载1M的文件都用不了1s,但相较于处理器,这就非常慢了),所以页面显示出来前都有一段时间的白屏,如果每次打开相同的页面,获取相同的资源都要等待一段时间的白屏,作为用户,岂能忍。如果把已经获取过的资源存在本地,下次用的时候就不用从服务器去取了,这样速度就要快很多了。这种机制便是web缓存。
其实web缓存的优点还有很多: - 减轻服务器压力 - 减少数据传输,节省网络带宽和流量 - 缩短页面加载时间,提升用户体验
二、web缓存分类
了解了缓存的由来和原理,下面针对web缓存(以下统一简称缓存)具体介绍一下。缓存是一个抽象的代名词,用以提高访问效率而临时存储副本的机制都可以称之为缓存。我们常说的缓存,根据资源存放位置、具体用途和运行机制不同,一般可以分为:
数据库缓存
服务器缓存
客户端缓存B站缓存的视频是是由于采用了d幕格式,这就要求播放时可以同时显示相应的d幕文字,且每一帧的音频视频数据需要经常的更新,的加载速度要比视频加载要快很多,从而实现了更加流畅的视频播放。
Pass缓存是b站服务器为了支持媒体流共享和节省带宽而开发的一项流技术,它会在每个节点都生成本地副本,从而节省传输次数,大大降低服务器的压力和访问时延。缓存会将历史步调最大化,即每次访问回复的内容都是一样的,以此来降低服务器的负载。因此,为了安全性考虑,为了不让用户直接拷贝和破解视频,是一个可行的解决方案。
此外,b站缓存的视频也具备网络优化的功能,可以减少流量和加快加载速度,这样可以减少视频的加载时间,使得用户体验更加流畅。1把/tomcat/webapps/目录清空,删掉该文件夹的所有内容,
2修改/tomcat/conf/webxml文件:
将其中的false 修改为 true;一般这样处理已经可以解决问题了,如果不行再看下面的3 试试
3修改/tomcat/conf/serverxml文件:给工程配置虚拟路径,这样tomcat在启动的时候直接找到你的工程了,
你上传的就不会跑到/tomcat/webapps/目录,而是直接到了你的工程里,
不管你怎样重启项目,或者清理缓存,上传的文件依然存在!基本分为三种:提升服务器带宽、OSS云存储和CDN加速。OSS的基础上还能进一步用CDN加速,不过费用就要进一步提升了。
1、提升服务器带宽
因为现在是在服务器里自建的文件存储系统,相当于用的是服务器本身的带宽,所以加载的时候会收到服务器带宽瓶颈的限制。所以可以直接加钱升服务器带宽来解决,不过要综合对比考虑一下经济性。
2、OSS云存储
OSS云存储是直接采用云存储系统,等于把这部分文件的流量拨出去了,不再受限于服务器的带宽瓶颈。但OSS本身也是有带宽瓶颈的,以及需要按流量付费。网上也有嫌OSS加载慢的,还要在OSS基础上进一步加CDN加速。由于我们本身的文件系统已经搭建起来了,如果OSS资费方面没什么优势,应该不会考虑,不然后面可能不仅要付加速的资费,还要付文件存储的资费。通过流量计费,流量小的话每天只几块钱。
CDN回流是优先调CDN,CDN缓存过期后才从OSS下载。
3、CDN加速
内容分发网络CDN(Content Delivery Network)是建立并覆盖在承载网之上,由遍布全球的边缘节点服务器群组成的分布式网络。阿里云CDN能分担源站压力,避免网络拥塞,确保在不同区域、不同场景下加速网站内容的分发,提高资源访问速度。
通俗点说,相当于把数据帮我们在就近的节点缓存。适合要求一致性不高的数据源。
一般情况下,CDN流量价格都比OSS流量价格便宜
4、资费对比
关于阿里云还是七牛的选择问题,有很多做个人博客的选择七牛云,去查了下,CDN性能比阿里云稍逊色,价格也会便宜点。理论上,浏览器会自动缓存的,
如果你的浏览器没有缓存,那有可能你把浏览器缓存禁用了,
还有一点是,即使是缓存了,浏览器还是会请求服务器的,但是请求的内容是,验证是否有修改,如果没有修改,那么服务器会返回状态码为300,而不是200,300意味着没有修改,那么浏览器就可以取本地缓存了,200是说下载传输完成的意思,就是说从服务器下载完成 ,
我觉得你的问题,应该是看到了浏览器请求,但是没有看状态吗的问题。
在明确一下:即使是缓存了,也会有请求的,只是请求的返回结果,是不是需要重新下载数据()
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)