/**
* 显示缓存状态
*
* 显示缓存取值成功、失败的次数和所有的缓存分组及组下的数据
*
*/
function stats() {
echo "<p>";
echo "<strong>Cache Hits:</strong> {$this->cache_hits}<br />";
echo "<strong>Cache Misses:</strong> {$this->cache_misses}<br />";
echo "</p>";
foreach ($this->cache as $group => $cache) {
echo "<p>";
echo "<strong>Group:</strong> $group<br />";
echo "<strong>Cache:</strong>";
echo "<pre>";
print_r($cache);
echo "</pre>";
}
}
/**
* PHP4风格的构造函数; 调用PHP 5风格的构造函数
* @返回值 WP_Object_Cache
*/
function WP_Object_Cache() {
return $this->__construct();
}
/**
* Sets up object properties; PHP 5 style constructor
*
* @since 2.0.8
* @返回值 null|WP_Object_Cache If cache is disabled, returns null.
*/
function __construct() {
/**
* @todo This should be moved to the PHP4 style constructor, PHP5
* already calls __destruct()
*/
//注册一个结束时的回调函数
register_shutdown_function(array(&$this, "__destruct"));
}
/**
* 析构函数 *
* Called upon object destruction, which should be when PHP ends
*
* @返回值 bool True value. Won't be used by PHP
*/
function __destruct() {
return true;
}
总体分析,wp的缓存类,实现了数据库一样的增删改查功能。只不过数据是保存在内存里,而不是数据库中。
wp中调用缓存对象的方法是并不是直接在代码中像这样调用
global $wp_object_cache;
return $wp_object_cache->add($key, $data, $flag, $expire);
而是封装在一个方法里:
function wp_cache_add($key, $data, $flag = '', $expire = 0) {
global $wp_object_cache;
return $wp_object_cache->add($key, $data, $flag, $expire);
}
调用的时候,像这样调用:
wp_cache_add($comment->comment_ID, $comment, 'comment');
由原来的两层结构,中间又加一层封装,变成三层,提高了代码的重用性、扩展性和可维护性。这正是我们写程序时应该追求的。
分享到:
相关推荐
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库实现所有可用方法。为什么这个叉子更好? 通过单个mget()调用预加载已知的缓存键,并进行延迟反序列化进一步的微优化例程使其成为最...
需要将object-cache.php文件上传到 wp-content 目录里,重启 PHP-FPM 进程即可生效。
记录缓存 使用持久性对象缓存来增强您的网站的性能,并通过OPcache后端加速缓存。 描述 Docket缓存是一个持久的WordPress对象缓存,存储为纯PHP代码。 打算为无法使用Redis或Memcached服务器的用户提供替代选项。 ...