1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 使用 Memcached 或 Redis 加速优化 WordPress 对象缓存(Object Cache)

使用 Memcached 或 Redis 加速优化 WordPress 对象缓存(Object Cache)

时间:2023-03-07 19:36:33

相关推荐

使用 Memcached 或 Redis 加速优化 WordPress 对象缓存(Object Cache)

WordPress 对象缓存(Object Cache)是 WordPress 默认情况下,对象缓存不持久,只在请求期间保留在内存中。请求过期后,缓存将失效,需要在下一个请求中重新生成。

WordPress 默认对象缓存的效率问题

熟悉缓存原理的朋友会发现,这种机制的效率并不高。为了提高缓存效率,我们需要持久化对象缓存,即保留对象缓存的结果,防止其在页面请求结束时失效,以便在下一个页面请求中直接使用保存的缓存结果,而无需再次查询数据库。

使用 Redis 或 Memcached 持久对象缓存数据

Redis 和 Memcached 它们都是著名的内存数据库,因为它们可以直接将数据保存在内存中,大大提高数据访问速度,通常被用作 MySQL 使用缓存数据库。

安装 Redis 服务和 PHP Redis 扩展

Ubuntu、Debian、CentOS 都有发行版 Redis 服务,我们可以直接执行相应的命令安装。当然,如果我们想获得更多的控制,我们也可以下载源代码编译 Redis 服务端。

apt-get install redis

安装 Redis 服务器启动不成功后,报告「MISCONF Redis is configured to save RDB snapshots」 我们可以使用的错误 redis-cli 关闭数据库硬盘快照功能,因为我们只使用它 Redis 不需要将数据保存到硬盘中进行缓存服务。

127.0.0.1:6379> config set stop-writes-on-bgsave-error no

安装了 Redis 服务结束后,我们还需要安装 PHP Redis 只有扩可以让 WordPress 缓存数据到 Redis 中。

pecl install redis

Memcached 安装方法及 Redis 这里就不多说了。安装并确认我们需要什么。 Redis 或 Memcached 服务生效后,我们还需要 WordPress 中启用 Redis 或 Memcached 对象缓存可以利用这两种服务为我们的持久对象缓存。

在 WordPress 中启用 Redis 对象缓存

在 WordPress 使用自定义缓存函数是用自定义缓存函数替换 WordPress 添加默认缓存函数的方法是添加默认缓存函数 「object-cache.php」到「wp-content/」目录中。「object-cache.php」本质上是一个 “Drop-in” 类型的 WordPress用于替换的插件 WordPress 内置功能。

缓存对象以缓存对象 Redis 我们需要在中间 WordPress 中启用 Redis 从下面的地址下载对象缓存「object-cache.php」,然后上传到 WordPress 站点的 「wp-content/」就在目录中。

/pressjitsu/pj-object-cache-red

Memcached 对象缓存插件

假如你用的是 Memcached 来持久化 WordPress 对象缓存,可使用以下两个缓存插件,任意选择一个。

/Automattic/wp-memcached/joomlaworks/wp-memcached-object-cache

自动添加一些插件「object-cache.php」到 wp-content/ 比如流行的目录 WP Super Cache 在这种情况下,插件可以直接更换此文件。

如果添加了「object-cache.php」之后,网站出现了 500 错误和不能打开的情况表明我们 Redis 未安装服务或扩展,检查以下内容,确保其可用,然后添加「object-cache.php」即可。

在开发WordPress在主题或插件中使用对象缓存

WordPress 为我们提供使用对象缓存的函数,方便我们使用对象缓存。

wp_cache_add() :将数据添加到缓存中,如果数据已存在,则返回 flasewp_cache_set() :将数据添加到缓存中,如果数据已存在,覆盖数据wp_cache_get() :获取缓存中的数据,如果数据不存在,请返回 falsewp_cache_delete() : 从缓存中删除数据wp_cache_replace() :类似于替换缓存中的数据 wp_cache_set,但是,如果数据不存在,则不会自动添加wp_cache_flush():清除所有缓存

WordPress 使用对象缓存示例

$result = wp_cache_get( my_result );if ( false === $result ) { $result = $wpdb->get_results( $query ); wp_cache_set( my_result, $result );}

对象缓存和页面缓存的区别

本网站之前介绍过使用Cachify 缓存 WordPress 该方法可以直接提高页面加载速度 WordPress 缓存生成的页面的方法称为 “页面缓存”,直接缓存是 WordPress 生成的HTML 页面,不仅缓存数据库查询,还缓存页面模板 PHP 逻辑操作结果。

对象缓存缓存只是MySQL 数据库查询结果,其他类型的缓存必然会缓存 PHP 与页面缓存相比,操作更底层,缓存粒度更细,操作更容易。WordPress 对象缓存不仅可以缓存前台数据库查询,还可以缓存仪表板的数据查询结果,可以在一定程度上改进 WordPress 打开后台的速度。

两种缓存方法都可以大大提高WordPress页面加载速度,页面缓存适用于无用户登录的网站;对象缓存适用于需要用户登录操作的网站,以避免页面缓存需要用户登录查看的内容。

总结

页面缓存和对象缓存都用于提高数据获取效率,加快网站页面打开速度。对象缓存与页面缓存不冲突,可同时使用,相互配合。虽然缓存可以提高页面打开的速度,但这并不意味着我们在开发时不必考虑性能和效率。始终注重数据访问效率,开发高性能 WordPress 应用程序,提高用户体验。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。