php memcache 基础操作

WBOY
リリース: 2016-06-06 19:38:30
オリジナル
890 人が閲覧しました

phpmemcache缓存 无 ?php/** * 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 * * @retur

php memcache缓存
<?php
/**
 * 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();
		}*/
	}
}
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!