作为 WordPress 6.0 发布的一部分,新的性能团队一直致力于对核心性能改进。现在,WordPress 缓存API有一些新增功能。
缓存操作的批处理 API 方法 ( wp_cache_*_multiple
)
wp_cache_get_multiple()
功能是在 WordPress 5.5 中添加的。这允许在一个请求中收集多个缓存键。为了完成这个 API,需要一个完整的CRUD,并通过以下函数添加:
wp_cache_add_multiple
wp_cache_set_multiple
wp_cache_delete_multiple
所有这些函数都接受要传递的数据数组,以便可以在单个缓存调用中创建、编辑或删除多个缓存对象。
在 WordPress 核心中,这些只是核心函数的包装器,允许在一个函数调用中传递多个键,但这也允许对象缓存插件开发人员在后端支持的情况下实现它们。
wp_cache_add_multiple( $data, $group = '', $expire = 0 )
的用法示例
$data
:要添加的键值对数组。$group
: 可选,字符串。缓存内容的分组位置。默认 ”。$expire
: 可选,整数。缓存何时到期(以秒为单位)。默认 0(无过期)。
wp_cache_add_multiple( array( 'foo1' => 'value1', 'foo2' => 'value2' ), 'group1' );
wp_cache_delete_multiple( $data, $group = '' )
的用法示例
$data
:要删除的键数组。$group
: 可选,字符串。缓存内容的分组位置。默认 ”。
wp_cache_delete_multiple( array( 'foo1', 'foo2' ), 'group1' );
wp_cache_set_multiple( $data, $group = '', $expire = 0 )
的用法示例
$data
:要设置的键值对数组。$group
: 可选,字符串。缓存内容的分组位置。默认 ”。$expire
: 可选,整数。缓存何时到期(以秒为单位)。默认 0(无过期)。
wp_cache_set_multiple( array( 'foo1' => 'value1', 'foo2' => 'value2' ), 'group1' );
通过这些添加,已经进行了一些额外的核心重构以利用这些新功能。请参阅Trac #55029中的更多详细信息。
允许刷新运行时间缓存 ( wp_cache_flush_runtime
)
正如性能问题#81和 Trac #55080中所讨论的,WordPress核心需要一种方法来允许用户刷新运行时间 runtime
(内存中)缓存而不刷新整个持久缓存。
在运行长时间需要运行的进程(如 Action Scheduler 或WP-CLI )的情况下,经常需要此功能。
wp_cache_flush_runtime()
的用法示例
$counter = 0;
foreach ( $posts as $post ) {
wp_insert_post( $post );
if ( 100 === $counter ) {
wp_cache_flush_runtime();
$counter = 0;
}
$counter++;
}
上面的示例会在将 100 个文章插入数据库后重置运行时间缓存。