菜单

WordPress内置的缓存机制

2010年07月28日 - wordpress

WordPress可以使用插件缓存,但其实在WordPress内部也有一套缓存机制,你可以使用很多函数轻松实现缓存。 为了让大家认识和了解这个功能,我使用一个简单的例子,缓存一个feed并在前端显示。

最先的缓存方案是WordPress 2.3中基于文件的缓存。该缓存是可选的,并需配置一些参数。 可通过下面的常量激活缓存: define ( ‘ENABLE_CACHE’, true);

缓存最大改进的还是在2.6版本,此时变为基于对象的缓存。缓存主要依赖于服务器速度,这主要是考虑到最大化地利用服务器资源而不是什么都交由WordPress处理。这样一来,WordPress中的缓存就无所谓的“被激活” ,因为它一直处于激活的状态。因此,服务器是否有足够的存储就显得尤为重要了, WordPress需要最低需要32兆的存储空间- 但并非每次都如此。例如,当跟新核心数据库的时候,需要128兆的空间,很多情况下都是无法满足的,因此就无法更新。

不过这个不是我们今天讨论的重点。我想向大家介绍如何利用自己的扩展使用缓存。我举个利用关键函数来实现缓存的例子。 你可以在wp-includes/cache.php或 Codex里查找到所有的函数。

你可以使用下列函数来实现添加缓存。

wp_cache_add($key, $data, $flag = ”, $expire = 0)

相反的,要删除缓存数据可以通过下面的方法实现。

wp_cache_delete($id, $flag = ”)

提取缓存数据:

wp_cache_get($id, $flag = ”)

替换缓存数据:

wp_cache_replace($key, $data, $flag = ”, $expire = 0)

至于缓存feed,WordPress1.5以后版本的feed都是通过fetch_rss()函数来加载的。

$mycache = wp_cache_get( ‘mycache’ ); // 获取键名为 “mycache” 的缓存
if ($mycache == false) { // 如果没有数据,那么
$mycache = fetch_rss(“http://mycache.com/feed/”); // 解析feed
wp_cache_set( ‘mycache’, $mycache ); // 将内容保存进 “mycache” 中
}
var_dump( $mycache ); // 显示内容

可通过变量$wp_object_cache或使用插件Debug Objects WP Cache Inspect 进一步了解WordPress缓存。Debug Objects 就是为此而产生,并只能用于开发环境中。

发表评论

电子邮件地址不会被公开。 必填项已用*标注