WordPress 中如何批量获取一组缓存?

2023-04-14 09:00:21 浏览数 (1)

类似于 Memcached 等很多缓存服务都支持一次请求获取多个数据,这样意味着无须多次连接外部对象缓存服务,可以显著的提升网站的效率。

wp_cache_get_multiple()函数

而 WordPress 之前只能通过 wp_cache_get() 函数一次获取单个缓存的值,所以在 WordPress 5.5 新增了 wp_cache_get_multiple() 函数,终于让 WordPress 可以一次连接获取多个缓存 key 对应的值,函数的参数为一组来自同个 group 的缓存 keys 数组,具体使用方法:

代码语言:javascript复制
wp_cache_get_multiple($ids, $cache_group);

额外说明一下,为什么函数名中使用 multiple 这个字眼呢?因为现有的很多缓存插件已经有了 wp_cache_get_multi() 这样的函数,但是这些函数的参数不一样,为了避免冲突,所以 WordPress 官方就用 wp_cache_get_multiple() 这个函数名。

object-cache.php 实现

这个函数是需要插件开发者在 object-cache.php 中去实现,没有的话,WordPress 只能通过兼容来处理,就是循环调用 wp_cache_get() 来获取这组缓存 keys 的值,这样完全无法体现 Memcached 的高效率。

目前 WordPress 已经在下面这几个函数的内部调用 wp_cache_get_multiple() 来提高程序的效率。

  • update_object_term_cache()
  • update_meta_cache()
  • _get_non_cached_ids()

新版的 WPJAM Basic 中内置的 object-cache.php 已经实现了 wp_cache_get_multi() 函数,更新新版之后,下载 WPJAM Basic 之后,将 wpjam-basic/template/ 目录下的 object-cache.php 文件重新复制到 wp-content 目录下即可。

0 人点赞