主页 > 编程资料 > PHP >
发布时间:2016-02-03 作者:网络 阅读:342次
<?php

/**
 * 内存缓存管理  
 */
class Yc_Memcache {

    private $memcache = null;

    public function __construct() {
        
    }

    /**
     * 连接数据库  
     *  
     * @param mixed $host  
     * @param mixed $port  
     * @param mixed $timeout  
     */
    public function connect($host, $port = 11211, $timeout = 1) {
//        if (!function_exists(memcache_connect)) {
//            return FALSE;
//        }
        $this->memcache = @memcache_connect($host, $port, $timeout);
        if (empty($this->memcache)) {
            return FALSE;
        } else {
            return TRUE;
        }
    }

    /**
     * 存放值  
     *  
     * @param mixed $key  
     * @param mixed $var  
     * @param mixed $flag   默认为0不压缩  压缩状态填写:MEMCACHE_COMPRESSED  
     * @param mixed $expire  默认缓存时间(单位秒)  
     */
    public function set($key, $var, $flag = 0, $expire = 10) {

        $f = @memcache_set($this->memcache, $key, $var, $flag, $expire);
        if (empty($f)) {
            return FALSE;
        } else {
            return TRUE;
        }
    }

    /**
     * 取出对应的key的value  
     *  
     * @param mixed $key  
     * @param mixed $flags  
     * $flags 如果此值为1表示经过序列化,  
     * 但未经过压缩,2表明压缩而未序列化,  
     * 3表明压缩并且序列化,0表明未经过压缩和序列化  
     */
    public function get($key, $flags = 0) {
        $val = @memcache_get($this->memcache, $key, $flags);
        return $val;
    }

    /**
     * 删除缓存的key  
     *  
     * @param mixed $key  
     * @param mixed $timeout  
     */
    public function delete($key, $timeout = 1) {
        $flag = @memcache_delete($this->memcache, $key, $timeout);
        return $flag;
    }

    /**
     * 刷新缓存但不释放内存空间  
     *  
     */
    public function flush() {
        memcache_flush($this->memcache);
    }

    /**
     * 关闭内存连接  
     *  
     */
    public function close() {
        memcache_close($this->memcache);
    }

    /**
     * 替换对应key的value  
     *  
     * @param mixed $key  
     * @param mixed $var  
     * @param mixed $flag  
     * @param mixed $expire  
     */
    public function replace($key, $var, $flag = 0, $expire = 1) {
        $f = memcache_replace($this->memcache, $key, $var, $flag, $expire);
        return $f;
    }

    /**
     * 开启大值自动压缩  
     *  
     * @param mixed $threshold 单位b  
     * @param mixed $min_saveings 默认值是0.2表示20%压缩率  
     */
    public function setCompressThreshold($threshold, $min_saveings = 0.2) {
        $f = @memcache_set_compress_threshold($this->memcache, $threshold, $min_saveings);
        return $f;
    }

    /**
     * 用于获取一个服务器的在线/离线状态  
     *  
     * @param mixed $host  
     * @param mixed $port  
     */
    public function getServerStatus($host, $port = 11211) {
        $re = memcache_get_server_status($this->memcache, $host, $port);
        return $re;
    }

    /**
     * 缓存服务器池中所有服务器统计信息  
     *  
     * @param mixed $type 期望抓取的统计信息类型,可以使用的值有{reset, malloc, maps, cachedump, slabs, items, sizes}  
     * @param mixed $slabid  cachedump命令会完全占用服务器通常用于 比较严格的调  
     * @param mixed $limit 从服务端获取的实体条数  
     */
    public function getExtendedStats($type = '', $slabid = 0, $limit = 100) {
        $re = memcache_get_extended_stats($this->memcache, $type, $slabid, $limit);
        return $re;
    }

}

?>


关键字词: