WordPress缓存:可以缓存什么以及我们如何做
已发表: 2017-04-28您希望您的网站快速运行。 一种有助于提高站点速度的技术是缓存。 缓存是一组软件和硬件技术,用于存储数据,以便它们可以快速用于未来的请求。 在本文中,我们将解释什么是 WordPress 缓存,如何在许多不同的级别上实现它,以及我们如何为您处理一切,让您不必担心。
什么是缓存?
在计算中,有一种叫做“缓存”的东西,其中软件或硬件组件用于临时存储值并在将来更快地检索它们。 MySQL 查询或编译的 PHP 字节码等值以及 HTML 和图像等重复数据。 几乎所有东西,真的。
通过制作数据副本并将它们放置在“缓存”组件中,我们获得了显着的性能优势。 您的访问者可以比未缓存更快地检索缓存内容。 访问者可以比未缓存的内容更快地检索缓存的内容。 缓存组件通常是内存,但可以是比传统存储更快的任何东西。 但是您可以获得多少性能改进?
这完全取决于您可以缓存多少数据,但一般来说,整整一秒的性能提升并不少见。
可以缓存什么?
有几个级别,具体取决于您希望使用缓存优化网站的程度。
HTML 输出
第一种方法是缓存 HTML 页面本身。 有许多 WordPress 缓存插件,例如 WP Rocket 和 W3 Total Cache,可以做到这一点等等。 这些插件缓存 HTML 输出的结果,为将来的请求节省时间。 此外,每个插件都为您提供了缓存失效机制,因此您可以在需要时提供未缓存的内容。
另一种技术是“缩小”HTML,即使其更小。 这给你每页几千字节,但它会随着时间的推移而增加。
您将需要访问仪表板,或者需要一种将插件安装到 WordPress 的方法才能做到这一点。
参考:
- WP火箭
- W3 Total Cache WordPress 插件
PHP OpCache
OpCaching 是一种 PHP 获取源 PHP 文件并将它们编译成称为字节码的中间形式的技术。 字节码类似于计算机的机器代码,但它指的是由“虚拟机”(本例中为 PHP)而不是由真实机器执行的机器代码。 由于它是机器代码并驻留在内存中,因此它的执行速度比让 PHP 解释器一次解析一个命令并执行它要快得多。
缓存在该级别将这些字节码数据存储到内存中,以便您的应用程序可以更快地执行。
您需要访问 PHP 配置文件才能启用 PHP OpCache。
参考:OpCache
PHP 对象缓存
这是在语言的 OOP 级别上完成的缓存。 PHP 是一种面向对象的语言,这意味着它使用“对象”的概念来描述逻辑、数据和思想。 当您的应用程序运行时,这些对象不断被创建和销毁(动态地,由称为垃圾收集器的子系统)。 这些对象的创建和初始化过程需要时间。 所以对象缓存通过缓存对象本身来解决这个问题。
这是通过诸如 Memcached 之类的插件和 Redis 的各种插件实现的。 Redis 是一个强大的内存数据结构存储,可以用作数据库。 Memcached 是一个分布式对象缓存系统。 它们都是在该级别进行缓存的绝佳选择。
您需要访问 PHP 的配置才能启用 PHP 对象缓存。 您还需要访问 Redis 或 Memcached 实例。
参考
- Redis WordPress 插件
- Memcached WordPress 插件
- Redis 文档
- 内存缓存维基
MySQL 查询缓存
这是相同的想法,但它应用于数据库级别。 数据库根据输入的查询返回一组数据。 如果您可以缓存这些查询的结果,那么下次有人使用该查询时,他们将更快地获取数据,因为它们将缓存在内存中。
为此,您将需要访问数据库服务器。
参考:MySQL 8.0 查询缓存
为了正确设置和维护所有这些,需要做很多事情。 如果您缺乏经验,技术知识、时间甚至金钱。 但我们可以帮助解决所有这些问题。
我们如何使用 Pressidium 的多层缓存解决所有问题。
答案很简单。 我们在所有地方都实现了缓存:在 WordPress 的所有层上。
对于 HTML 输出,我们实现了两层缓存, hot 和 warm 。 这些层是我们自适应缓存引擎的一部分。 我们的引擎还可以分析您的站点并执行最有效的缓存规则。 但是,我们将在另一篇文章中详细介绍这一点。 所以热缓存是驻留在内存中并且可以快速访问的数据。 暖缓存是驻留在最先进的 SSD 磁盘中的数据。 这会提高整体缓存命中率,并使您的站点的性能明显优于传统存储。
对于我们的企业客户,我们使用出色的内存数据结构存储 Redis 构建了一个对象缓存系统。 最后,MySQL 查询缓存。 这是默认启用的,并由我们的 DevOps 持续监控。 MySQL 查询缓存可以为您提供有关网站性能的宝贵信息。
需要注意的是,所有这些都是在我们平台的后端实现的,而不是通过一些 WordPress 缓存插件。 这意味着a) 我们使用外部服务器进行存储,因此我们不会对您的网络服务器资源造成负担,并且 b) 我们将数据存储在内存中,其访问速度比磁盘快。
无论您的缓存需求和预算如何,我们都可以提供。