投稿 搜索

热搜词

热门文章

给WordPress添加 Memcached CAS 协议方法

在WordPress的object-cache.php我们可以增加下面这两个函数:

function wp_cache_get_with_cas( $key, $group = '', &$cas_token = null ) {
global $wp_object_cache;
return $wp_object_cache->get_with_cas( $key, $group, $cas_token );
}
 
function wp_cache_cas( $cas_token, $key, $data, $group = '', $expire = 0  ) {
    global $wp_object_cache;
    return $wp_object_cache->cas( $cas_token, $key, $data, $group, $expire );
}

然后在对应的 WP_Object_Cache 中添加相应的方法:

function get_with_cas( $id, $group = 'default', &$cas_token=null){
    $key    = $this->key( $id, $group );
 
    if(defined('Memcached::GET_EXTENDED')) {
        $result    = $this->mc->get($key, null, Memcached::GET_EXTENDED);
 
        if ($this->mc->getResultCode() == Memcached::RES_NOTFOUND) {
            $value    = false;
        }else{
            $value        = $result['value'];
            $cas_token     = $result['cas'];
        }
    }else{
        $value    = $this->mc->get($key, null, $cas_token);
 
        if ($this->mc->getResultCode() == Memcached::RES_NOTFOUND) {
            $value    = false;
        }
    }
 
    return $value;
}
 
function cas( $cas_token, $id, $data, $group = 'default', $expire = 0 ) {
    $key = $this->key( $id, $group );
 
    if ( is_object( $data ) ) {
        $data = clone $data;
    }
 
    $this->cache[ $key ] = $data;
 
    return $this->mc->cas( $cas_token, $key, $data, $expire );
}

用法:

$cas_token = '';
$item    = wp_cache_get_with_cas($key, $cache_group, $cas_token);
// 对 $item 进行一些处理
wp_cache_cas($cas_token, $key, $item, $cache_group, DAY_IN_SECONDS);


文章地址:https://www.ruzw.com/html/201805/523.html

声明: 该文观点仅代表专栏作者本人,RUZW电商运营网仅提供信息存储空间服务!
赞 | 0
圈子
加RUZW运营微信
  • RUZW官方运营号
  • 电商运营网
  • 加入大牛电商运营交流群!