php memcached get,PHP Memcached操作类
/**
* 缓存驱动
* @author Devil
* @version 1.0.0
*/
class CacheLibrary
{
private $c_obj;
private $c_time;
/**
* [__construct 构造方法]
*/
public function __construct($host, $port = 11211)
{
/* 实例化memcached */
$this->c_obj = new Memcached();
if(!$this->c_obj->addServer($host, $port)) Api_Return(L('code_413'), 413);
/* 基础参数设置 */
$this->c_time = empty(C('cache')['time']) ? 0 : C('cache')['time'];
}
/**
* [GetTime 获取缓存时间]
* @return [int] [缓存时间]
*/
private function GetTime($time = 0)
{
return (intval($time) > 0) ? intval($time) : $this->c_time;
}
/**
* [Add 缓存添加]
* @param [string] $key [索引]
* @param [mixed] $val [值]
* @param [integer] $time [过期时间(单位秒), 0永久, 或时间戳]
* @return [boolean] [成功true, 失败false]
*/
public function Add($key, $val, $time = 0)
{
return $this->c_obj->add($key, $val, $this->GetTime($time));
}
/**
* [Set 缓存替换]
* @param [string] $key [索引]
* @param [mixed] $val [值]
* @param [integer] $time [过期时间(单位秒), 0永久, 或时间戳]
* @return [boolean] [成功true, 失败false]
*/
public function Set($key, $val, $time = 0)
{
return $this->c_obj->set($key, $val, $this->GetTime($time));
}
/**
* [SetMulti 设置多个索引的缓存数据]
* @param [type] $key_all [索引数组]
* @param [integer] $time [过期时间(单位秒), 0永久, 或时间戳]
* @return [boolean] [成功true, 失败false]
*/
public function SetMulti($key_all, $time = 0)
{
return $this->c_obj->setMulti($key_all, $time);
}
/**
* [Append 向已存在索引后面追加数据]
* @param [string] $key [索引]
* @param [string] $val [追加的数据(字符串)]
*/
public function Append($key, $val)
{
$this->setOption();
return $this->c_obj->append($key, $val);
}
/**
* [Prepend 向已存在索引前面追加数据]
* @param [string] $key [索引]
* @param [string] $val [追加的数据(字符串)]
*/
public function Prepend($key, $val)
{
$this->setOption();
return $this->c_obj->prepend($key, $val);
}
/**
* [Replace 替换已存在索引下的元素]
* @param [string] $key [索引]
* @param [mixed] $val [值]
* @param [integer] $time [过期时间(单位秒), 0永久, 或时间戳]
* @return [boolean] [成功true, 失败false]
*/
public function Replace($key, $val, $time = 0)
{
$this->c_obj->replace($key, $val, $time);
}
/**
* [setOption 设置选项]
*/
private function setOption()
{
$this->c_obj->setOption(Memcached::OPT_COMPRESSION, false);
}
/**
* [Fetch 抓取下一个结果]
* @param [string] $key_all [索引名]
* @param [boolean] $cas [是否返回长度, 是true, 否false默认]
*/
public function Fetch($key_all, $cas = false)
{
$this->GetDelayed($key_all, $cas);
return $this->c_obj->fetch();
}
/**
* [FetchAll 抓取所有剩余的结果]
* @param [string] $key_all [索引名]
* @param [boolean] $cas [是否返回长度, 是true, 否false默认]
*/
public function FetchAll($key_all, $cas = false)
{
$this->GetDelayed($key_all, $cas);
return $this->c_obj->fetchAll();
}
/**
* [GetDelayed 请求多个索引]
* @param [string] $key_all [索引名]
* @param [boolean] $cas [是否返回长度, 是true, 否false默认]
*/
private function GetDelayed($key_all, $cas)
{
$this->c_obj->getDelayed($key_all, $cas);
}
/**
* [Get 缓存获取]
* @param [string] $key [索引]
* @return [mixed] [当前索引对应的数据]
*/
public function Get($key)
{
return $this->c_obj->get($key);
}
/**
* [GetMulti 获取多个索引的缓存数据]
* @param [type] $key_all [索引数组]
*/
public function GetMulti($key_all)
{
return $this->c_obj->getMulti($key_all);
}
/**
* [Delete 删除一个索引]
* @param [string] $key [索引]
* @param [integer] $time [等待时间(单位秒), 0立即, 或时间戳]
* @return [boolean] [成功true, 失败false]
*/
public function Delete($key, $time = 0)
{
return $this->c_obj->delete($key, $time);
}
/**
* [DeleteMulti 删除多个索引]
* @param [array] $key_all [索引数组]
* @param [integer] $time [过期时间(单位秒), 0立即, 或时间戳]
* @return [boolean或array] [成功true, 失败false]
*/
public function DeleteMulti($key_all, $time = 0)
{
$s = $this->c_obj->deleteMulti($key_all, $time);
if(empty($s)) return false;
foreach($s as $key=>$val)
{
if($val !== true) if($this->Get($key) == false) $s[$key] = true;
}
return $s;
}
/**
* [Flush 作废所有元素]
* @param [integer] $time [等待时间(单位秒), 0立即]
* @return [boolean] [成功true, 失败false]
*/
public function Flush($time = 0)
{
return $this->c_obj->flush($time);
}
}
?>
php memcached get,PHP Memcached操作类相关推荐
- php memcached close,PHP连接Memcached安装及数据库操作
memcached介绍 Memcached是一套开源的高性能分布式内存对象缓存系统,它将所有的数据都存储在内存中,因为在内存中会统一维护一张巨大的Hash表,所以支持任意存储类型的数据.很多网站通过使 ...
- ECShop的数据操作类文件
ECShopv2.7.2没有使用一些开源的数据库操作类,比如adodb或者PEAR,而是封装了自己的实现.这样做的好处是实现非常轻量,只有一个文件,27Kb,大大减小了分发包的文件大小.另外,当网站需 ...
- memcached+magent实现memcached集群
首先说明下memcached存在如下问题 本身没有内置分布式功能,无法实现使用多台Memcache服务器来存储不同的数据,最大程度的使用相同的资源:无法同步数据,容易造成单点故障.(memagent代 ...
- [转]memcached+magent实现memcached集群
From : http://www.cnblogs.com/happyday56/p/3461113.html 首先说明下memcached存在如下问题 本身没有内置分布式功能,无法实现使用多台Mem ...
- memcached php mysql_PHP: memcached
客户端下载 系统要求及环境配置注意:您已经有 php memcache 等环境,请注意教程中的一些提示,以免生产环境被覆盖,导致业务不可用,在升级及再编译环境前请做好环境备份. windows 系列版 ...
- java memcached incr_Redis与Memcached的incr/decr差异对比
目前广泛使用的分布式缓存Redis和Memcached均支持对整数型Value值的增减,对应到具体命令中就是incr和decr命令. incr/decr是原子性操作(memcached 1.2.4及以 ...
- memcached 注册服务器,Memcached深入剖析(一)—Memcached服务器安装
Memcached是一个高性能的分布式内存缓存服务器. 一般的使用目的是:通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度. 提高可扩展性. 许多Web应用都将数据保存到DB中, ...
- Java学习总结:41(文件操作类:File)
Java文件操作类:File 在java.io包中,如果要进行文件自身的操作(例如:创建.删除等),只能依靠java.io.File类完成. File类的常用操作方法 No. 方法 类型 描述 1 p ...
- Java学习总结:35(数字操作类)
Java的数字操作类 一.Math类 Math类是一个专门用来进行数学计算的操作类,它提供了一系列的数学计算方法.在Math类里面提供的一切方法都是static型方法,所以可以直接由类名称进行调用. ...
最新文章
- NGUI的技能冷却实现
- 2018.12.24
- SharePoint 2013 新建网站集图解
- 【深度学习入门到精通系列】nnU-Net论文解析
- 百度地图手绘线坐标获取
- Connected to an idle instance问题的小小仇恨
- ChemDraw教程:如何查看和删除俗名
- 读书笔记8-浪潮之巅(part3)
- 结构化编程:不确定迭代循环控制do while
- [linux 命令笔记] kill
- 上海市消保委:春节长假期间 共受理消费者投诉4600件
- 微信退款参数格式错误
- 网传各高校教授经典语录
- css3动画结束捕捉事件整理
- java基础菜鸟教程_java基础菜鸟教程大全,java入门
- 百度云库计算机网页制作说课PPT,网页制作说课PPT.doc
- html怎么显示五线谱,教你一个怎么看五线谱的绝招!
- JSP完成添加商品时的图片上传
- 朱啸虎是如何投到国内第一家 PLG 独角兽的 | 风云投资人
- 什么是强化学习?(主要的强化学习概念)
热门文章
- 部署nginx反向代理及缓存
- There are no packages available for install
- 淘宝账号基于OAuth2.0的登录验证授权登陆第三方网站
- oracle decode函数
- intellij 常用设置
- 加载MNIST报错:[WinError 10060] 由于连接方在一段时间后没有正确答复解决办法(亲测)
- 查看mysql主从配置的状态及修正 slave不启动问题
- VMware通过vmdk文件创建虚拟机
- -bash: /tyrone/jdk/jdk1.8.0_91/bin/java: cannot execute binary file
- NGINX限流的一些思考