php操作memcache共享缓存方法





采用memcache的前提下,是需要在服务器端被配置memcahche环境!

证实memcahce经过正常的连接可以在程序中使用!

<?php
/**
* Memcache缓存操作
* @update http://www.lai18.com
*/
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 keyword
* @param string $value 缓存内容
* @return array
* @update http://www.lai18.com
*/
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 keyword
* @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 keyword
* @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 keyword
* @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操作memcache缓存为基础的方法的更多相关文章

  1. 详解PHP操作Memcache缓存技术提高响应速度的方法

    本文转载http://blog.csdn.net/zhihua_w  不错的博客,仅供本人学习之用 一般来说,如果并发量不大的情况,使不使用缓存技术并没有什么影响,但如果高并发的情况,使用缓存技术就显 ...

  2. php操作memcache缓存基本方法

    memcache 是一个高效的分布式的内存对象缓存系统,他可以支持把php的各种数据(数组,对象,基本数据类型)放在它管理的内存中 1.代码使用 <?php //连接 $mem = new Me ...

  3. memcached基于socket访问memcache缓存服务器

    memcached基于socket访问memcache缓存服务器 操作memcache常用三种方法: .memcache基于php_memcache.dll扩展(php扩展) .memcached基于 ...

  4. 使用Memcache缓存mysql数据库操作的原理和缓存过程浅析

    转载自脚本之家 http://www.jb51.net/article/51831.htm  作者:忙碌的松鼠 对于大型网站如facebook,ebay等网站,如果没有Memcache做为中间缓存层, ...

  5. php操作memcache的用法、详解和方法介绍

    1.简介 memcache模块是一个高效的守护进程,提供用于内存缓存的过程式程序和面向对象的方便的接口,特别是对于设计动态web程序时减少对数据库的访问. memcache也提供用于通信对话(sess ...

  6. DedeCMS V5.7开启memcache缓存的方法配置说明

    一.安装Memcache服务:1.1.linux下的Memcache安装:-------------------------1. 下载 memcache的linux版本,注意 memcached 用 ...

  7. PHP之Memcache缓存详解

         Mem:memory缩写(内存):内存缓存 1.  断电或者重启服务器内存数据即消失,即临时数据: Memcache默认端口:11211 存入方式:key=>>value    ...

  8. 前端学PHP之PHP操作memcache

    × 目录 [1]安装 [2]连接 [3]增删改查[4]分布式[5]状态[6]安全[7]应用 前面的话 和访问mysql服务器类似,PHP也是作为客户端API访问memcached服务器的,所以同样需要 ...

  9. Memcache缓存系统构建一

    在如今这个高效率的社会中,怎样将这个高效率应用到自己的程序中,是一个值得追寻和值得探讨的问题.因为这个memcache能够很好的提高检索速度,提升用户体验,而且重要的是减少数据库的访问.这就大大的提高 ...

随机推荐

  1. 雷人的一幕:国外的codeproject论坛竟有人发“中文贴”.....

    潜水近一年,头一次见国人在此发“中文贴”,截图留个“纪念”....

  2. STL algorithm算法minmax,minmax_element(36)

    minmax原型: std::minmax C++11 C++14 default (1) template <class T> pair <const T&,const T ...

  3. 第三方框架和ARC

    在使用了ARC机制的项目中使用第三方开源框架的方法: 1.在第三方开源框架的每个.m文件都设置成    -fno-objc-arc 具体方法:TARGETS--->Build Phases -- ...

  4. Ubuntu下使用虚拟机安装Windows XP(sunvirtualbox)

    看完这个教程之后,网银?淘宝?CS?魔兽?---一个都不能少!好了,教程开始! 首先下载虚拟机,下载地址:http://download.virtualbox.org/virtualbox/3.1.0 ...

  5. vim使用(三):.viminfo和.vimrc

    1. viminfo 在vim中操作的行为,vim会自己主动记录下来,保存在 ~/.viminfo 文件里. 这样为了方便下次处理, 如:vim打开文件时,光标会自己主动在上次离开的位置显示. 原来搜 ...

  6. 苹果Swift编程语言新手教程【中文版】

    文件夹 1 简单介绍 2 Swift入门 3 简单值 4 控制流 5 函数与闭包 6 对象与类 7 枚举与结构 1 简单介绍 Swift是供iOS和OS X应用编程的新编程语言,基于C和Objecti ...

  7. 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context}

    警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to'org.eclipse ...

  8. 并行编程条件变量(posix condition variables)

    在整理Java LockSupport.park()东方的,我看到了"Spurious wakeup",通过重新梳理. 首先,可以在<UNIX级别编程环境>在样本: # ...

  9. 认识node.js:express(一)

    express是node.js官方推荐的框架. 安装 npm install express -g 命令中的 “-g” 表示全局(global) 由于新版本(4.x.x)的express的命令集中到了 ...

  10. C标签之forEach

    <c:forEach>标签用于通用数据循环,它有下面属性 属 性 描 述 是否必须 缺省值 items 进行循环的项目 否 无 begin 開始条件 否 0 end 结束条件 否 集合中的 ...