php缓存技术memcache,php操作memcache缓存方法分享

/**

* Memcache缓存操作

* @author hxm

* @version 1.0

* @since 2015.05.04

*/

class MCache extends Object implements CacheFace

{

private $mem = null; //Mem对象

private $sId = 1; //servier服务ID

/**

* 初始化Memcache

*

* @return Object

*/

public function __construct()

{

if ( !class_exists('Memcache') )

{

throw new QException('PHP extension does not exist: Memcache');

}

$this->mem = new Memcache();

}

/**

* 链接memcahce服务

*

* @access private

* @param string $key 关键字

* @param string $value 缓存内容

* @return array

*/

private function connect( $sid )

{

$file = $this->CacheFile();

require $file;

if(! isset($cache) )

{

throw new QException('缓存配置文件不存在'.$file);

}

$server = $cache[$this->cacheId];

$sid = isset($sid) == 0 ? $this->sId : $sid;//memcache服务选择

if ( ! $server[$sid])

{

throw new QException('当前操作的缓存服务器配置文件不存在');

}

$host = $server[$sid]['host'];

$port = $server[$sid]['port'];

try {

$this->mem->connect( $host , $port );

} catch (Exception $e) {

exit('memecache连接失败,错误信息:'. $e->getMessage());

}

}

/**

* 写入缓存

*

* @access private

* @param string $key 关键字

* @param string $value 缓存内容

* @return array

*/

public function set( $key , $value , $sid , $expire = 0)

{

$data = $this->get($key , $sid); //如果已经存在key值

if( $data )

{

return $this->mem->set( $key , $value ,MEMCACHE_COMPRESSED , $expire);

} else {

return $this->mem->add( $key , $value ,MEMCACHE_COMPRESSED , $expire);

}

}

/**

* 读取缓存

*

* @access private

* @param string $key 关键字

* @param int $sid 选择第几台memcache服务器

* @return array

*/

public function get( $key , $sid)

{

$this->connect( $sid );

return $this->mem->get($key);

}

/**

* 清洗(删除)已经存储的所有的元素

*

* @access private

* @return array

*/

public function flush()

{

$this->connect();

return $this->mem->flush();

}

/**

* 删除缓存

*

* @access private

* @param string $key 关键字

* @param int $sid 选择第几台memcache服务器

* @return array

*/

public function remove( $key , $sid)

{

$this->connect();

return $this->mem->delete($key);

}

/**

* 析构函数

* 最后关闭memcache

*/

public function __destruct()

{

/*if(! $this->mem)

{

$this->mem->close();

}*/

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值