一文解读WordPress网站的各类缓存-老白博客

news2024/11/22 19:54:08
缓存是一种重要的WordPress优化手段,用于提高网站的性能和加载速度。减少计算量,有效提升响应速度,让有限的资源服务更多的用户。本文老白博客便从自己的使用简单给大家介绍下WordPress的缓存,包括 站点缓存(Page Caching页面缓存)、浏览器缓存(Browser Cache)和 服务器缓存(Server Cache)。

原文地址:https://www.xcbtmw.com/29813.html

在这里插入图片描述

1.WordPress缓存简单介绍

1.1 WordPress缓存原理介绍

此处借用 美团技术团队文章说明:一般而言,现在互联网应用(网站或App)的 标准流程如下图所示,用户请求从界面(浏览器或App界面)到网络转发、应用服务再到存储(数据库或文件系统),然后返回到界面呈现内容。随着技术发展,需要处理的信息、所做的计算越来越大,但是我们的服务器性能是有限的。 如何能够有效利用有限的资源来提供尽可能大的吞吐量?

解决方法:打破标准流程,每个环节中请求可以从缓存中直接获取目标数据并返回,从而减少计算量,有效提升响应速度,让有限的资源服务更多的用户

缓存的使用可以出现在1~4的各个环节中,每个环节的缓存方案与使用各有特点。1为浏览器缓存、2为页面缓存,3、4、5为服务器缓存

当老白博客在上述路径设置好对应的缓存,用户访问网站的流程就是和下图类似:

将为每个网页创建一个缓存页面,当访问者访问您的网站时,他们将获得每个页面的缓存(静态)版本。在几秒钟内,WordPress 缓存插件最大限度地减少了访问者的浏览器、WordPress 数据库和 Web 服务器之间传输的数据量,使访问者以更快的加载时间与网站互动。

2.常用的WordPress缓存

2.1 服务器缓存

服务器缓存也类似于站点缓存,但它不是将内容保存在客户端,而是将内容保留在站点的服务器上。
2.1.1 工作原理
a.当用户访问网站并请求该网页时,该网站会从服务器检索数据,生成该网页,并将其显示给用户

b.将响应发送回用户后,服务器会创建网页的副本并将其存储为缓存

c.下次用户重新访问网站时,它不会再次浏览整个过程,而是显示已经保存(或缓存)的网页副本——从而使网站加载速度更快!

在这里插入图片描述

2.1.2 类型
a.对象缓存 – 将数据库查询存储在服务器端缓存中,以便下次访问者请求内容时,服务器可以立即交付内容,而无需重复查询数据库。 b.操作码缓存 – 当 PHP 文件首次加载到网页上时发生。它存储PHP脚本的结果,以便更快地加载,而不是每次您的网站收到请求时执行。 c.CDN 缓存 – 内容交付网络 (CDN) 是位于全球的服务器系统。当用户访问网站时,CDN 会将缓存文件从服务器机柜提供给他们,以减少加载时间。
2.1.3 说明
对象缓存:包括memcached、redis、APC,一般服务器配置之后就差不多了

操作码缓存:PHP 5.5版本起内置的操作码缓存扩展。它具有高效的操作码缓存机制,并且对于WordPress来说是默认启用的。输出已存储为静态 HTML 文件,这减少了服务器必须执行的操作数,从而减少了站点加载所需的时间。

在这里插入图片描述

2.2 站点缓存(页面缓存)

网站缓存(也称为页面缓存)在首次加载网页时临时存储网站数据(如图像、网页、文件和类似的多媒体)。因此,每当用户重新访问网站时,保存的元素都会快速检索并显示给他们。站点缓存是一种客户端缓存。

2.3 浏览器缓存

浏览器缓存存储用户浏览的特定网页的缓存版本,是存在访客自己的浏览器里面的,跟站点缓存类似,都是客户端缓存,存到访客的电脑里面。

有些插件不支持浏览器缓存,这时候可以采用下面的方式使用:

WordPress网站宝塔面板使用Service Worker加速(浏览器缓存)

2.3.1 缓存对象
  • HTML code 网页代码
  • CSS stylesheets CSS 样式表
  • JavaScript scripts JavaScript 脚本
  • Images 图像
当用户重新访问网站时,他们的浏览器将获取缓存的文件并利用它们来组合生成网站内容。

2.4 浏览器缓存和页面缓存的区别

这个我一直不太理解区别,都是客户端缓存,大概把我理解的说一下:

网站缓存:就像网站的临时内存创建方法,能够缓存文件种类少,且文件小,包括网页、图像、文本,这个是默认开启的

浏览器缓存:与临时内存对应,存储文件内容相对较久,缓存的文件种类多,文件量大,包括 HTML 页面、CSS 样式表、JavaScript 脚本、图像和其他多媒体文件

3.使用WordPress缓存的优势

这个我就不展开说了:

3.1 优势

  • 提高页面加载速度和网站性能
  • 减少服务器负载
  • 最小化带宽使用
  • 提升流量处理和资源可扩展性
  • 增强用户体验

3.2 速度调查报告

当将改进的页面加载速度、更好的流量处理、减少的服务器负载和高效的资源利用结合起来时,可以在 WordPress 网站上获得更出色的用户体验。 这意味着访问者将在网站上停留更长时间——然后导致更深入的参与、更多的转化和更高的盈利能力。

在这里插入图片描述

消费者自己承认,他们受到网站性能的严重影响。近70%的人表示页面速度会影响他们从电子商务商店购买的意愿。在加载时间方面,事实证明,每秒增加一次都可能会使转化率降低 17% 。

4.WordPress缓存插件

下面的缓存插件就没啥好说的了,大家选择自己喜欢的就行,无插件缓存也是可以的。

纯代码免插件优化WordPress6.3实现0sql-强化拓展

Nginx环境个人推荐super cache:

WP-Super-Cache专家模式WordPress伪静态规则配置

老白博客的openlitespeed环境就推荐 litespeed cache,对象缓存使用memcached和redis都可以
插件页面缓存浏览器缓存数据库优化加载时间(参考度低)定价
WP Rocket2.5 秒$49
WP Super Cache×2.7 秒免费
W3 Total Cache××1.8 秒$99
WP Fastest Cache×2.4 秒$49.99
LiteSpeed Cache3.0 秒免费
Autoptimize×××3.9 秒免费
SpeedUp Browser Caching××3.6 秒免费
Cachify××3.1 秒免费

5.参考来源

老白博客个人瞎解读,如有误解,纯属巧合!
  • https://stackoverflow.com/questions/4429025/caches-vs-paging
  • https://fearlessdigitaljourney.com/performance/server-cache-vs-browser-cache-vs-site-cache-whats-the-difference/
  • https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching
  • https://www.siteground.com/blog/leverage-browser-caching-in-wordpress/
  • https://tech.meituan.com/2017/03/17/cache-about.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1148240.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言——输入 10 个学生的姓名、学号和成绩,将其中不及格者的姓名、学号和成绩输出

完整代码&#xff1a; // 输入 10 个学生的姓名、学号和成绩&#xff0c;将其中不及格者的姓名、学号和成绩输出 #include<stdio.h> //学生的个数 #define N 10 struct Student {char name[20];int id;int grade; };int main(){//定义学生结构体数组struct Student stu[…

【C++笔记】C++多态

【C笔记】C多态 一、多态的概念及实现1.1、什么是多态1.2、实现多态的条件1.3、实现继承与接口继承1.4、多态中的析构函数1.5、抽象类 二、多态的实现原理 一、多态的概念及实现 1.1、什么是多态 多态的概念&#xff1a; 在编程语言和类型论中&#xff0c;多态&#xff08;英…

零基础Linux_24(多线程)线程同步+条件变量+生产者消费模型_阻塞队列版

目录 1. 线程同步和生产者消费者模型 1.1 生产者消费者模型的概念 1.2 线程同步的概念 1.3 生产者消费者模型的优点 2. 线程同步的应用 2.1 条件变量的概念 2.2 条件变量操作接口 3. 生产者消费者模型_阻塞队列 3.1 前期代码&#xff08;轮廓&#xff09; 3.2 中期代…

Starknet开发工具

1. 引言 目前Starknet的开发工具流可为&#xff1a; 1&#xff09;Starkli&#xff1a;音为Stark-lie&#xff0c;为替换官方starknet-CLI的快速命令行接口。Starkli为单独的接口&#xff0c;可独自应用&#xff0c;而不是其它工具的组件。若只是想与Starknet交互&#xff0…

C语言 定义一个函数,并调用,该函数中打印显示直角三角形

#include<stdio.h> void chengfabiao() {for (int i 1; i < 5; i){for (int j 1; j < i; j){printf("*");} printf("\n");} } int main(int argc,const char *argv[]) {chengfabiao();return 0; }

leetCode 136.只出现一次的数字 + 位运算

136. 只出现一次的数字 - 力扣&#xff08;LeetCode&#xff09; 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算…

SpringBoot面试题8:运行 Spring Boot 有哪几种方式?Spring Boot 需要独立的容器运行吗?

该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:运行 Spring Boot 有哪几种方式? 运行Spring Boot应用有多种方式,具体取决于你的需求和环境。以下是几种常见的运行Spring Boot应用的方式: 使…

Ubuntu学习---跟着绍发学linux课程记录(第4部分)

第3部份内容记录在&#xff1a;Ubuntu学习—跟着绍发学linux课程记录&#xff08;第3部分&#xff09; 文章目录 14 ubuntu服务器上的java14.1 Java的安装14.2 运行java程序14.3 Java启动脚本 15 ubuntu服务器上的tomcat15.1 Tomcat服务器15.2 Tomcat的配置15.3 Tomcat启动日志…

【多线程面试题十一】、如何实现子线程先执行,主线程再执行?

文章底部有个人公众号&#xff1a;热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享&#xff1f; 踩过的坑没必要让别人在再踩&#xff0c;自己复盘也能加深记忆。利己利人、所谓双赢。 面试官&#xff1a;如何实现子线程先执行&a…

beyond compare 4密钥2023大全,beyond compare 4注册码最新

beyond compare 4是一款文件对比软件&#xff0c;可以快速比较文件和文件夹、合并以及同步&#xff0c;非常实用&#xff0c;一些用户想知道beyond compare 4密钥有哪些&#xff0c;本文为大家带来了介绍哦~ 密钥&#xff1a; w4G-in5u3SH75RoB3VZIX8htiZgw4ELilwvPcHAIQWfwf…

redis原理 主从同步和哨兵集群

主从库如何实现数据一致 我们总说的 Redis 具有高可靠性&#xff0c;又是什么意思呢&#xff1f;其实&#xff0c;这里有两层含义&#xff1a;一是数据尽量少丢失&#xff0c;二是服务尽量少中断。AOF 和 RDB 保证了前者&#xff0c;而对于后者&#xff0c;Redis 的做法就是增…

微服务框架Consul--新手入门

Consul Consul 是由 HashiCorp 开发的一款软件工具&#xff0c;提供了一组功能&#xff0c;用于服务发现、配置管理和网络基础设施自动化。它旨在帮助组织管理现代分布式和微服务架构系统的复杂性。以下是Consul的一些关键方面和功能&#xff1a; 服务发现&#xff1a;Consul …

[Python]unittest-单元测试

目录 unittest的大致构成: Test Fixture Test Case-测试用例 Test Suite-测试套件 Test Runner 批量执行脚本 makeSuite() TestLoader discover() 用例的执行顺序 忽略用例执行 skip skipIf skipUnless 断言 HTML测试报告 错误截图 unittest是python中的单元测…

禁用Google Chrome自动升级、查看Chrome版本号

问题 查看Chrome版本时&#xff0c;会自动升级&#xff0c;这个设计很垃圾,对开发者不友好&#xff1b;查看Chrome版本方法&#xff1a;chrome浏览器右上角—>自定义及控制Google Chrome(三个竖着的点号)------>帮助---->关于Google Chrome。 解决办法 禁用自动升级…

二叉树题目合集(C++)

二叉树题目合集 1.二叉树创建字符串&#xff08;简单&#xff09;2.二叉树的分层遍历&#xff08;中等&#xff09;3.二叉树的最近公共祖先&#xff08;中等&#xff09;4.二叉树搜索树转换成排序双向链表&#xff08;中等&#xff09;5.根据树的前序遍历与中序遍历构造二叉树&…

木疙瘩文字变形动画

H5-大 第一步 创建文字到新动画图层 第二步&#xff1a;直接在时间末尾插入变形动画帧 文字专属的参数和形状变化一样都是变形动画才可以动起来&#xff01;关键帧动画主要服务元件&#xff01; 第三步&#xff1a;改变文字参数即可&#xff01;

苍穹外卖-day03

苍穹外卖-day03 课程内容 公共字段自动填充新增菜品菜品分页查询删除菜品修改菜品 **功能实现&#xff1a;**菜品管理 菜品管理效果图&#xff1a; 1. 公共字段自动填充 1.1 问题分析 在上一章节我们已经完成了后台系统的员工管理功能和菜品分类功能的开发&#xff0c;在…

Linux C/C++ 实现网络流量分析(性能工具)

网络流量分析的原理基于对数据包的捕获、解析和统计分析&#xff0c;通过对网络流量的细致观察和分析&#xff0c;帮助管理员了解和优化网络的性能、提高网络安全性&#xff0c;并快速排查和解决网络故障和问题。 Linux中的网络流量常见类型 在Linux中&#xff0c;网络流量可以…

数组与链表算法-链表与多项式

目录 数组与链表算法-链表与多项式 多项式链表表示法 C代码 数组与链表算法-链表与多项式 使用链表的最大好处就是减少内存的浪费&#xff0c;并且能增加使用上的弹性。例如数学上常用的多项式表示法&#xff0c;虽然可以使用数组方式来处理&#xff0c;但当数据内容变动时…

AC修炼计划(AtCoder Regular Contest 164)

传送门&#xff1a;AtCoder Regular Contest 164 - AtCoder A.签到题&#xff0c;在此不做赘述 B - Switching Travel 这题本来该是秒的&#xff0c;但是因为没有考虑清楚环的问题而被卡半天&#xff0c;其实我们不难发现&#xff0c;要想使题目存在节点&#xff0c;就得让该节…