首页 小组 问答 话题 好文 素材 用户 唠叨 我的社区

[分享]WordPress对象缓存机制(Object Cache)详细介绍和使用

九秘Lv.1种子选手
2024-10-01 08:05:11
0
47

WordPress对象缓存机制和服务器设置

WordPress对象缓存(英文名是:Object Cache)就是WordPress的缓存机制。

它的主要功能是把数据库查询结果或者复杂运算的结果按照Key-Value这样的方式存储到对象里面,WordPress还支持按照Group来划分和避免缓存的内容冲突。

下次进行同样操作的时候,可以让直接从这个对象中取出数据,不用重复到数据库中或者其他外部网站获取数据。

WordPress对象缓存和服务器设置关系很大,如果系统开启了Memcached内存缓存,则这个对象是直接存入到内存,在数据未过期之前,以后再次读取这个数据都是直接从内存中读取的,这样效率和速度都非常快的。

如果服务器不支持内存缓存的话,则只能保证在当前页面(PHP同个进程下)下同样的查询或者操作不再重复从数据库中读取了。

WordPress对象缓存的函数

WordPress对象缓存技术使用是非常简单的,主要要熟悉下面四个函数:

  • 使用wp_cache_add()把数据添加到缓存中。

  • 使用wp_cache_set()把数据设置到缓存中。

  • 使用wp_cache_get()到缓存中读取数据。

  • 使用wp_cache_delete()删除缓存中的数据。

这四个函数会涉及到的四个参数:

参数

解释

$key

对象的key。

$data

要存的值。

$group

分组,可选参数,用来把缓存对象就行分组。

$expire

过期时间,可选参数,如果是默认缓存,这个参数没用,如果是内存缓存,是设置缓存的时间,单位是秒,默认为0(0的意思就是永远,不会自动过期)。

使用WordPress对象缓存

以WordPress相关文章为例,使用WordPress对象缓存:

使用当前post_id作为key,posts_group作为group,缓存时间为一个小时,即3600秒。

global $post;
$post = get_posts($post->ID);
wp_cache_set($post->ID,$post,'posts_group',3600);

上面只是把数据存到缓存对象中,在显示文章相关内容的时候,就要去调用这个对象缓存来使用,首先检查下是否已经有了缓存,如果你要的信息没有在缓存中,或者已经过期了。wp_cache_get()会返回false,如果这样,你就要去数据库中重新获取这些信息。否则就返回在缓存中的信息。

global $post;
$post = wp_cache_get($post->ID,'posts_group');
if(false === $post){
$post = get_posts($post->ID);
wp_cache_set($post->ID,$post,'posts_group',3600);
}
echo $post;

因为设置了一个小时,相关文章的数据就失效,这里一般就无需更新缓存了,如果你在后台更改了设置,需要立即清理缓存,可以使用wp_cache_delete进行清理:

wp_cacache_delete($post->ID,'posts_group');
九秘
九秘

21 天前

签名 : 我常驻在>https://www.huaqu.club/ask   47       0
评论
站长交流