static function connect() { if (!CGlobal::$memcache_connect_id && !eb_memcache::$crashed) { if (!function_exists('memcache_connect')) { //dl("php_memcache.dll"); //dl("php_xdebug.dll"); eb_memcache::$crashed = 1; return FALSE; } eb_memcache::$identifier = MEMCACHE_ID; //eb_memcache::$identifier = 'chonmon.vn'; if (!CGlobal::$memcache_server || !count(CGlobal::$memcache_server)) { eb_memcache::$crashed = 1; return FALSE; } if (DEBUG) { $rtime = microtime(); $rtime = explode(" ", $rtime); $rtime = $rtime[1] + $rtime[0]; $start_rb = $rtime; } for ($i = 0, $n = count(CGlobal::$memcache_server); $i < $n; $i++) { $server = CGlobal::$memcache_server[$i]; if ($i < 1) { CGlobal::$memcache_connect_id = memcache_connect($server['host'], $server['port']); } else { memcache_add_server(CGlobal::$memcache_connect_id, $server['host'], $server['port']); } if (DEBUG) { $mtime = microtime(); $mtime = explode(" ", $mtime); $mtime = $mtime[1] + $mtime[0]; $end_rb = $mtime; $load_time = round($end_rb - $start_rb, 5) . "s"; CGlobal::$conn_debug .= " <b>Connect to Memcache server : {$server['host']} : {$server['port']} </b> [in {$load_time}]<br>\n"; } } if (!CGlobal::$memcache_connect_id) { eb_memcache::$crashed = 1; return FALSE; } if (function_exists('memcache_set_compress_threshold')) { memcache_set_compress_threshold(CGlobal::$memcache_connect_id, 20000, 0.2); } //memcache_debug( eb_memcache::$debug ); } return CGlobal::$memcache_connect_id; }
/** * Connect to memcache server * * @access private * @param array Connection information * @return boolean Initiation successful */ private function _connect($server_info = array()) { if (!count($server_info)) { $this->crashed = true; return false; } if (!isset($server_info['memcache_server_1']) or !isset($server_info['memcache_port_1'])) { $this->crashed = true; return false; } $this->link = memcache_connect($server_info['memcache_server_1'], $server_info['memcache_port_1']); if (!$this->link) { $this->crashed = true; return false; } if (isset($server_info['memcache_server_2']) and isset($server_info['memcache_port_2'])) { memcache_add_server($this->link, $server_info['memcache_server_2'], $server_info['memcache_port_2']); } if (isset($server_info['memcache_server_3']) and isset($server_info['memcache_port_3'])) { memcache_add_server($this->link, $server_info['memcache_server_3'], $server_info['memcache_port_3']); } if (function_exists('memcache_set_compress_threshold')) { memcache_set_compress_threshold($this->link, 20000, 0.2); } return true; }
} } } return $returnstring; } function filesize_url($url) { return ($data = @file_get_contents($url)) ? strlen($data) : false; } $mcache = false; if ($config['cache_type']) { if (function_exists('memcache_connect')) { $memcache_server = explode(":", $config['memcache_server']); $mcache = @memcache_connect($memcache_server[0], $memcache_server[1]); if ($mcache and function_exists('memcache_set_compress_threshold')) { memcache_set_compress_threshold($mcache, 20000, 0.2); } } } function clear_cache($cache_areas = false) { global $mcache; if ($mcache) { memcache_flush($mcache); } else { if ($cache_areas) { if (!is_array($cache_areas)) { $cache_areas = array($cache_areas); } } $fdir = opendir(ENGINE_DIR . '/cache');
/** * 开启大值自动压缩 * * @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; }
function __construct($server = '127.0.0.1', $port = '11211') { $this->_memcache_obj = new Memcache(); $this->_memcache_obj->addServer($server, $port, true); memcache_set_compress_threshold($this->_memcache_obj, 1024); }