Wordpress的缓存类WP_Object_Cache在wp-includes/cache.php文件中。与一般的缓存类将数据缓存在文件中不同,WP将数据缓存在内存中,所以每次客户端请求,都要重新生成缓存,请求处理结束后,缓存就清空了。这样唯一的好处是,一次请求中,需要多次使用的数据,比如site_name,只需要去数据库中查询一次,以后直接读内存就可以了,速度比读数据库快,提高程序执行效率。
下面来分析WP_Object_Cache的实现
class WP_Object_Cache {
//所有的缓存数据都保存在这个变量里
var $cache = array ();
//缓存中不存在的变量
//调用get方法是取不到的值,都保存在这里
var $non_existant_objects = array ();
//记数 记录取值时成功的次数
var $cache_hits = 0;
//记数 记录取值时失败的次数
var $cache_misses = 0;
/**
* 向缓存中添加新数据
*
* @使用 WP_Object_Cache::get 检查缓存中是否已存在该数据.
* @使用 WP_Object_Cache::set 检查了缓存中数据不存在后,设置新值
*
* @参数 int|string $id 标识缓存中的数据
* @参数 mixed $data 要保存的数据
* @参数 string $group 缓存内容的分组 wp把数据按不同的类型分组,如comment、bookmark等
* @参数 int $expire 缓存内容的过期时间 从未使用过
* @返回值 bool 缓存ID和组存在时返回false,否则返回true
*/
function add($id, $data, $group = 'default', $expire = '') {
if (empty ($group))
$group = 'default';
//如果组$group下id为$id的值已经存在,则不能新增,返回false
if (false !== $this->get($id, $group, false))
return false;
return $this->set($id, $data, $group, $expire);
}
}
实在是无奈,同一篇文章,代码贴多了,就发布失败,只能分在几篇文章里发,对不起大家了。
续:
http://baiyuxiong.iteye.com/admin/blogs/768988
分享到:
相关推荐
WordPress使用了一个名为`wp_cache`的全局函数来与ObjectCache进行交互。 **3. ObjectCache的实现** ObjectCache通常由两种主要组件组成:后端存储和API接口。后端存储可以是内存中的键值存储,如Memcached或Redis...
wp_nav_menu()函数调用_wp_menu_item_classes_by_context() ,根据上下文,该函数再次调用wp_get_object_terms() ,该缓存多次未被缓存。 有许多分类法,术语和菜单项,这可能导致相当数量的(完全冗余的)数据库...
WP Spider Cache是您友好的WordPress邻居缓存解决方案。 它使用Memcached来存储对象和页面输出。 如果您熟悉Batcache和WP Super Cache,那么您将在这里。 它带有: 支持注册多个Memcached后端服务器 用于查看...
WP Redis 使用Redis的WordPress对象缓存。 由Alley Interactive提供。先决条件 设置将object-cache.php安装到wp-content/object-cache.php 。 在wp-config.php文件中,添加服务器凭据: $redis_server = array( '...
WP缓存记住 WP Cache Remember是一个简单的WordPress包含,它引入了方便的新缓存功能。... $ cached = wp_cache_get ( $ cache_key ); // Return the cached value. if ( $ cached ) { return $ cached ;
uWSGI WordPress对象缓存 该插件使用uWSGI缓存在WordPress中进行对象缓存。 警告 该插件需要手动安装 uWSGI中存在一个错误,因此您需要包含 安装 将object-code.php文件移动到您的WP_CONTENT_DIR 添加define( '...
Redis(一种高性能内存存储后端)支持您的 WP Object Cache。描述对于流量大、登录用户速度快或动态页面加载的网站,高速持久的对象缓存必不可少。您还需要能够跨应用程序的多个实例进行扩展的缓存,因此使用本地...
【Wordpress缓存】 WordPress提供了多种缓存策略,包括页面缓存、对象缓存和数据库缓存。对象缓存主要用于存储WP的短期数据,如查询结果、会话信息等。使用Redis作为对象缓存后,这些数据将存储在内存中,而不是写入...
总览一个高效,可预测且经过单元测试的WordPress对象缓存后端,可使用Redis PECL库实现所有可用方法。... 将object-cache.php添加到wp-content目录。 它是一个插入文件,而不是插件,因此它属于wp-content
需要将object-cache.php文件上传到 wp-content 目录里,重启 PHP-FPM 进程即可生效。
记录缓存 使用持久性对象缓存来增强您的网站的性能,并通过OPcache后端加速缓存。 描述 Docket缓存是一个持久的WordPress对象缓存,存储为纯PHP代码。 打算为无法使用Redis或Memcached服务器的用户提供替代选项。 ...