Материал из Wiki
Простая библиотека для базовых функций MemCache
<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
class CI_Memcache {
private $memcache;
private $memcache_host = '127.0.0.1';
private $memcache_port = 11211;
private $memcache_compress = 0;
private $timelife;
/**
* Открываем новое соединение с Memcache
*
* @access public
*/
public function __construct()
{
if($this->memcache_host && $this->memcache_port > 0)
{
$this->memcache = memcache_connect($this->memcache_host, $this->memcache_port);
if($this->memcache_compress > 0)
{
$this->memcache_compress = 'MEMCACHE_COMPRESSED';
}
}
log_message('debug', 'MemCache Class Initialized');
}
/**
* Подгружаем файл кэша
*
* @access public
* @param string Имя файла
* @param string Время жизни файла
* @return string
*/
public function load($valueID = '')
{
if($valueID)
{
$valueID = md5($valueID);
return memcache_get($this->memcache, $valueID);
}
else
{
return FALSE;
}
}
/**
* Сохраняем файл кэша
*
* @access public
* @param string Контент для файла
* @param string Имя файла
* @return string
*/
public function save($value = '', $valueID = '', $timelife = 0)
{
if($value && $valueID && $timelife > 0)
{
$valueID = md5($valueID);
$this->timelife = $timelife;
return memcache_set($this->memcache, $valueID, $value, $this->memcache_compress, $this->timelife);
}
else
{
return FALSE;
}
}
/**
* Удаляем файл кэша
*
* @access public
* @param string Имя файла
* @return boolean
*/
public function delete($valueID = '')
{
$valueID = md5($valueID);
if(memcache_delete($this->memcache, $valueID))
{
return TRUE;
}
else
{
return FALSE;
}
}
/**
* Закрываем соединение с Memcache
*
* @access public
* @return boolean
*/
public function __destruct()
{
if($this->memcache)
{
if(memcache_close($this->memcache))
{
return TRUE;
}
else
{
return FALSE;
}
}
else
{
return FALSE;
}
}
}
?>