奥多码,点击查看详情 APP分发吧,点击查看详情

WordPress教程:对象缓存介绍和使用方法

       
广告2021-06-03到期2021-07-03广告2021-06-03到期2021-07-03
       
广告2021-06-03到期2021-07-03广告2021-06-03到期2021-07-03

网站采用WordPress搭建,WordPress Object Cache(WordPress 对象缓存)是 WordPress 的默认缓存机制,它的主要功能是把负责查询或者运算的结果按照 Key-Value 这样的方式(WordPress 还支持按照 Group 来划分和避免缓存的内容冲突)存储到对象里面,下次进行同样操作的时候,可以让直接从这个对象中取出数据,不用重复到数据库中或者其他外部网站获取数据。

有人说WordPress本来就很卡,的确是这样,不过WordPress也在努力的解决这个问题,对象缓存就是这一小步,根据这个我们还可以实现更多的功能,比如在编写主题的时候,可以需要自定义查询参数,我们可以将这个查询结果缓存起来,然后在下次调用的时候直接使用。

WordPress Object Cache在2.5版本以前是可选的,但是在之后的版本,以内建在WordPress的程序中,所以如果你使用的是WordPress 2.5以后的版本,无所谓是否开启对象缓存。

WordPress Object Cache 和服务器设置关系很大,如果系统支持内存缓存,则这个对象是直接存入内存,以后在未过期之前都是直接从内存中读取的,这样效率和速度都非常快的。如果服务器不支持内存缓存的话,则只能保证在当前页面下同样的查询或者操作不再重复从数据库中读取了。

WordPress 对象缓存的函数

使用 WordPress 对象缓存技术其实是非常简单的:

使用 wp_cache_set() 把数据写到缓存中。
使用 wp_cache_get() 到缓存中读取数据
使用 wp_cache_delete() 删除缓存。
这些函数会涉及到的四个参数:

$key: 对象的 key。
$data: 要存的值。
$group: 分组,可选参数,用来把缓存对象就行分组。
$expire: 过期时间,可选参数,如果是默认缓存,这个函数没用,如果是内存缓存,是设置缓存的时间,单位是秒,默认为0(0的意思就是永远,不会自动过期)。
使用 WordPress 对象缓存

下面以我即将更新 WordPress 相关日志插件为例,讲讲如何使用 WordPress 对象缓存:

我们知道 WordPress 相关日志插件是通过 tag 和分类来获取相关日志,相同的 tag 和分类越多,相关性越强,这样就需要进行多个表联合查询来获取相关日志,这样效率其实是比较慢的。但是一个日志它的相关日志一段时间内是不会变动的,所以 我们就可以使用 WordPress 对象缓存对相关日志进行加速。

下面是把把相关日志的数据写入缓存的例子,使用当前 post ID 作为 key,’related_post’ 作为 group,缓存时间为一个小时,即 3600 秒。

  1. global $post;
  2. $related_posts_data = wp_get_related_posts();
  3. wp_cache_set($post->ID,$related_posts_data,‘related_posts’,3600);

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

  1. global $post;
  2. $related_posts_data = wp_cache_get($post->ID,‘related_posts’);
  3. if(false === $related_posts_data){
  4. ????????$related_posts_data = wp_get_related_posts();
  5. ????????wp_cache_set($post->ID,$related_posts_data,‘related_posts’,3600);
  6. }
  7. echo $related_posts_data;

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

  1. wp_cacache_delete($post->ID,‘related_posts’);
本文由【好易之】整理自网络!
原创文章,作者:【好易之】如转载请注明出处:https://www.zhengjiaxi.com/zxwd/jswd/69766.html
如有侵权,请邮件联系 aoduoye@qq.com 删除。
本站发布的文章及附件仅限用于学习和研究目的;不得将上述内容用于商业或非法用途,否则后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
好易之的头像好易之站长
上一篇 2020-05-27 00:34
下一篇 2020-05-27 00:34

相关推荐

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询:点击这里给我发消息

 

工作时间:周一至周五,9:30-18:30,节假日休息

关注公众号
请查看头部文章来源地址!本站所有内容均为互联网收集整理和网友上传。仅限于学习研究,切勿用于商业用途。否则由此引发的法律纠纷及连带责任本站概不承担。
阿里云