96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * @copyright (C)2016-2099 Hnaoyun Inc.
 | 
						|
 * @author XingMeng
 | 
						|
 * @email hnxsh@foxmail.com
 | 
						|
 * @date 2017年10月24日 
 | 
						|
 *  Memcache缓存类
 | 
						|
 */
 | 
						|
namespace core\cache;
 | 
						|
 | 
						|
use core\basic\Config;
 | 
						|
 | 
						|
class Memcache implements Builder
 | 
						|
{
 | 
						|
 | 
						|
    protected static $memcache;
 | 
						|
 | 
						|
    protected $conn;
 | 
						|
 | 
						|
    // 禁止直接实例化
 | 
						|
    private function __construct()
 | 
						|
    {}
 | 
						|
 | 
						|
    private function __clone()
 | 
						|
    {
 | 
						|
        error('禁止克隆实例!');
 | 
						|
    }
 | 
						|
 | 
						|
    // 单一实例获取
 | 
						|
    public static function getInstance()
 | 
						|
    {
 | 
						|
        if (! self::$memcache) {
 | 
						|
            self::$memcache = new self();
 | 
						|
        }
 | 
						|
        return self::$memcache;
 | 
						|
    }
 | 
						|
 | 
						|
    // 初始化连接
 | 
						|
    protected function conn()
 | 
						|
    {
 | 
						|
        if (! $this->conn) {
 | 
						|
            $this->conn = new Memcache();
 | 
						|
            $server = Config::get('cache.server');
 | 
						|
            if (is_multi_array($server)) {
 | 
						|
                foreach ($server as $value) {
 | 
						|
                    $this->conn->addserver($value['host'], $value['port']);
 | 
						|
                }
 | 
						|
            } else {
 | 
						|
                $this->conn->addserver($server['host'], $server['port']);
 | 
						|
            }
 | 
						|
        }
 | 
						|
        return $this->conn;
 | 
						|
    }
 | 
						|
 | 
						|
    // 设置值
 | 
						|
    public function set($key, $value)
 | 
						|
    {
 | 
						|
        $memcache = $this->conn();
 | 
						|
        return $memcache->set($key, $value);
 | 
						|
    }
 | 
						|
 | 
						|
    // 读取值
 | 
						|
    public function get($key)
 | 
						|
    {
 | 
						|
        $memcache = $this->conn();
 | 
						|
        return $memcache->get($key);
 | 
						|
    }
 | 
						|
 | 
						|
    // 删除
 | 
						|
    public function delete($key)
 | 
						|
    {
 | 
						|
        $memcache = $this->conn();
 | 
						|
        return $memcache->delete($key);
 | 
						|
    }
 | 
						|
 | 
						|
    // 清理所有
 | 
						|
    public function flush()
 | 
						|
    {
 | 
						|
        $memcache = $this->conn();
 | 
						|
        return $memcache->flush();
 | 
						|
    }
 | 
						|
 | 
						|
    // 版本信息
 | 
						|
    public function status()
 | 
						|
    {
 | 
						|
        $memcache = $this->conn();
 | 
						|
        return $memcache->getExtendedStats();
 | 
						|
    }
 | 
						|
 | 
						|
    // 关闭连接
 | 
						|
    public function __destruct()
 | 
						|
    {
 | 
						|
        $memcache = $this->conn();
 | 
						|
        $memcache->close();
 | 
						|
    }
 | 
						|
} |