服务器缓存机制?数据库缓存机制

nginx 缓存机制

Nginx缓存的基本思路

基本思想是利用客户访问的时间局部性原理,对客户已经访问过的内容在Nginx服务器本地建立副本,这样在一段时间内再次访问该数据,就不需要通过Nginx服务器再次向后端服务器发出请求,所以能够减少Nginx服务器与后端服务器之间的网络流量,减轻网络拥塞,同时还能减小数据传输延迟,提高用户访问速度。同时,当后端服务器宕机时,Nginx服务器上的副本资源还能够回应相关的用户请求,这样能够提高后端服务器的鲁棒性。

对于缓存,我们大概会有以下问题:

(1)缓存文件放在哪儿?

(2)缓存的空间大小是否可以限定?

(3)如何指定哪些请求被缓存?

(4)缓存的有效期是多久?

(5)对于某些请求,是否可以不走缓存?

解决这些问题后,nginx的缓存也就基本配置完成了,下面看详细配置过程

开启缓存

要使用缓存,首先要使用 proxy_cache_path这个指令(必须放在 http上下文的顶层位置),然后在目标上下文中使用 proxy_cache指令

配置示例

proxy_cache_path有两个必填参数,第一个参数为缓存目录,第二个参数keys_zone指定缓存名称和占用内存空间的大小(注:示例中的10m是对内存中缓存内容元数据信息大小的限制,如果想限制缓存总量大小,需要用 max_size参数)

proxy_cache的参数为之前指定的缓存名称

缓存管理的相关进程

在缓存工作中有两个附加进程:

(1)缓存管理器

定期检查缓存状态,看缓存总量是否超出限制,如果超出,就移除其中最少使用的部分

(2)缓存加载器

加载器只在nginx启动后运行一次,把缓存内容的元数据信息加载到内存空间,如果一次性加载全部缓存信息,会大量消耗资源,使nginx在启动后的几分钟里变慢,为避免此问题,有3种加载策略:

loader_threshold–指定每次加载执行的时间

loader_files–每次最多加载的数量

loader_sleeps–每次加载的延时

例如:

proxy_cache_path/data/nginx/cache keys_zone=one:10m loader_threshold=300 loader_files=200;

指定缓存哪些请求

nginx默认会缓存所有 get和 head方法的请求结果,缓存的key默认使用请求字符串

(1)自定义key

例如 proxy_cache_key" request_uri cookie_nocache arg_comment;

如果任何一个参数值不为空,或者不等于0,nginx就不会查找缓存,直接进行代理转发

综合示例

nginx缓存机制

三分钟看懂Nginx服务器的缓存原理和机制

web前端缓存机制

前端缓存机制有多种,如浏览器缓存、CDN缓存、DNS缓存、代理服务器缓存等。

CDN全称是Content Delivery Network,即内容分发网络。CDN的原理是将资源存放在各地的缓存服务器上,当用户请求资源时,从就近的服务器上返回缓存的资源,而不需要每次都从源服务器获取,减轻源服务器的压力,又能提升用户的访问速度。

浏览器可以将用户请求的资源进行缓存,存放在本地。浏览器缓存一般通过请求头来设置。

与浏览器缓存有关的头部有:

浏览器会将服务器的域名与IP地址的映射缓存在本地,这样用户在访问网站时,不用每次都去查询DNS映射表。

在浏览器和服务器之间架设的一个服务器,这个代理服务器会帮助浏览器去请求页面,然后将页面进行处理和压缩(例如压缩图片和文件),使页面变小,再传输给浏览器。大部分代理服务器都有缓存的功能,如果浏览器所请求的文件在它本机中存在且是最新的,就不需要再从源服务器请求数据,提高了浏览速度。

在浏览某个页面时,浏览器会判断页面的关联内容,进行预加载。用户在浏览A页面时,就加载好B页面,这样当用户去访问B页面时,B页面很快就出来,提升了用户体验。但这个机制有一定的缺陷,就是预判不一定准确,可能会造成流量和资源的浪费。

缓存服务器的缓存概念是什么

缓存服务器的缓存概念涉及到Web对象的存储和快速访问。主要分为直接缓存,通过在企业本地网络中保存频繁访问的Web对象拷贝,实现对用户请求的快速响应。直接缓存策略减少了对源服务器的请求,提高了网络传输效率,减少了延迟。此外,它有助于减轻源服务器的负载,提升用户体验。间接缓存或代理缓存则通过中间代理服务器存储内容,进一步加速内容的分发。

直接缓存是一种基于本地存储的缓存机制,它将用户访问频繁的Web资源临时存储在企业内部的服务器上。当用户再次请求相同的资源时,缓存服务器直接从本地存储中提供资源,而无需再次请求原始服务器。这种机制显著提高了访问速度,减少了网络延迟,并节省了服务器资源。

间接缓存或代理缓存则通过在客户端和源服务器之间添加一个代理服务器,代理服务器存储并分发内容。当用户请求资源时,代理服务器首先检查缓存中是否有该资源。如果有,直接提供缓存内容,否则再请求源服务器。这种策略有助于实现内容的分布式存储和快速传输,提高了整体网络性能。

缓存服务器通过实施直接缓存或间接缓存策略,将常用内容存储在接近用户的位置,减少了对源服务器的请求,加快了内容访问速度,提升了用户体验。同时,缓存策略还能减轻源服务器的负担,优化网络资源的利用。因此,理解缓存服务器的缓存概念对于优化网络架构、提升性能具有重要意义。

阅读剩余
THE END