WordPress 页面缓存与对象缓存

所谓缓存,即“数据交换的缓冲区”,一般缓存是指数据在缓冲区中读取而无需经过数据库或磁盘中读取,这样能极大减少运算步骤,提高程序执行效率。

WordPress 的缓存有两大类型,分别“页面缓存”“对象缓存”。本文为了方便一般人理解,将会从不涉及代码和专业词汇中禅说。

WordPress 页面缓存

定义:所谓“页面缓存”,简单来说即“网页内容的持久和存储”,其中网页内容,指的是组成网页的 HTML 代码,存储为文件的形式

作用:将网页的 HTML 代码存储起来,下次访问不经过数据库等步骤直接读取并显示,以达到更快速显示内容,这就是使用网页缓存的基本步骤和作用。当然其中可能会包括删除旧数据,按需刷新数据等的步骤,这里就不展开探讨了。

使用:WordPress 的页面缓存,可以使用 WordPress 官方插件 WP Super Cache 或本站的 PoiCache-SQLite 版插件。要使用 WordPress 的页面缓存,需要在 WordPress 根目录中找到 wp-config.php 文件并在顶端第二行以下添加一行 \define('WP_CACHE', true); 并保存文件。如果插件为单文件,那么应该将其更名advanced-cache.php 并拷贝至 wp-content/ 目录里面,这样才能启用页面缓存。

WordPress 对象缓存

定义:所谓“对象缓存”,简单来说即“数据对象的持久和存储”,其中对象指的是数据类型为对象(Object),即缓存这种类型的数据,但这里指的不仅限于对象类型,其他的文本类型数字类型,都统称对象。对象缓存可以使用 Memcache(d) 或 Redis (内存数据库)内存型缓存,或本站的 Poi Object Cache 系列缓存(有 Memcache(d)、Redis、File、SQLite3)均可以。

扩展知识:WP 的瞬时缓存(Transients Cache)也用到对象缓存,这里不展开探讨。

作用:一般来说,为了达到更快速的存储,对象缓存是应该用将数据存储在内存高冲缓冲区,以便下次访问能快速读取。但因为主机的环境不同,可能配套的组件没有内存型组件,所以就需要以文件(File)或数据库等介质进行存储。这两种存储方式效率无法跟内存相提并论,但能肯定的是必然比不缓存更快。所以能用对象缓存,就应该用对象缓存,至少会有一定的速度提升。

使用:WordPress 对象缓存,由于使用时候可能一个步骤会达到上千次或上万次操作,所以要求插件开发者的代码十分精炼才能更好发挥其作用,不然就是适得其反。在 WP 插件中搜索“Redis”或“Memcached”,均可以找到不同类型的插件,但这些插件都需要主机环境的支持。如果主机不支持,使用后可能会导致网站宕机,使用前需要注意。

总结

最后总结“页面缓存”和“对象缓存”,用几句话来概括:

  • 页面缓存能看到,对象缓存不能看到,前者更倾向于形式,后者更倾向于内在
  • 两者不是必须,两者毫无关系,可以只用其一,也可以双双启用。
  • 页面缓存不需要主机组件支持,对象缓存有组件支持则效率更好

到现在看官们能了解它们之间的关系了吗?如有疑问之处,欢迎评论提问。

_(本文完,更新于 2018-02-23)_

热门评论
© INN STUDIO