PHP和Memcached - 在PHP中的应用 - Memcached类介绍 - 封装自己的Memcached类库
1、Memcached类的介绍
详见PHP官方文档:点击访问。
2、封装自己的Memcached类库
<?php namespace Cache\Lib; class MemCache
{
/**
* @var \Memcached
* 访问变量可以使用Memcached类库的其他方法
*/
public $_memcache; public function __construct($persistentId = null)
{
$cache = new \Memcached($persistentId); //判断服务器地址是否为空
if(!$cache->getServerList())
{
//一般从config文件中读取服务器地址
//添加服务器地址,去掉s只能添加一个服务器地址
$cache->addServers(
array(
//ip地址,端口,权重 | 权重越大,该服务越容易被选中
array('192.168.3.105', 11211, 60),
array('192.168.3.105', 11311, 40),
)
);
} //key 前缀的设置
$cache->setOption(\Memcached::OPT_PREFIX_KEY, 'imooc.'); $this->_memcache = $cache;
} /**
* 设置缓存
* @param string $key 缓存key
* @param string|array $value
* @param int $ttl 过期时间
* @return bool
*/
public function set($key, $value, $ttl = 3600)
{
if(empty($key) || empty($value) || is_numeric($ttl))
{
return false;
} return $this->_memcache->set($key, $value, $_SERVER['REQUEST_TIME'] + $ttl);
} /**
* 获取缓存
* @param $key
* @return bool|mixed
*/
public function get($key)
{
if(empty($key))
{
return false;
}
return $this->_memcache->get($key);
} /**
* 清空缓存处理
* @param $key
* @return bool
*/
public function clean($key)
{
if(empty($key))
{
return false;
} return $this->_memcache->delete($key);
} /**
* 自增处理
* @param $key
* @param $offset
* @return bool|int
*/
public function incr($key, $offset = 1)
{
if(empty($key))
{
return false;
}
$offset = intval($offset);
return $this->_memcache->increment($key, $offset);
} /**
* 自减少处理
* @param $key
* @param int $offset
* @return bool|int
*/
public function decr($key, $offset = 1)
{
if(empty($key))
{
return false;
}
$offset = intval($offset);
return $this->_memcache->decrement($key, $offset);
} /**
* add处理
* @param $key
* @param $value
* @param int $ttl
* @return bool
*/
public function add($key, $value, $ttl = 3600)
{
if(empty($key) || empty($value) || is_numeric($ttl))
{
return false;
} return $this->_memcache->add($key, $value, $_SERVER['REQUEST_TIME'] + $ttl);
} }
如有错误之处,请纠正。谢谢!
PHP和Memcached - 在PHP中的应用 - Memcached类介绍 - 封装自己的Memcached类库的更多相关文章
- C#中的Dictionary字典类介绍
Dictionary字典类介绍 必须包含名空间System.Collection.Generic Dictionary里面的每一个元素都是一个键值对(由二个元素组成:键和值) 键必须是 ...
- Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流)
1.File类:对硬盘上的文件和目录进行操作的类. File类是文件和目录路径名抽象表现形式 构造函数: 1) File(String pathname) Creat ...
- (转)C#中的Dictionary字典类介绍
关键字:C# Dictionary 字典 作者:txw1958原文:http://www.cnblogs.com/txw1958/archive/2012/11/07/csharp-dictionar ...
- SpringMvc 中的实用工具类介绍(包括 ResponseEntity、 RestTemplate、WebUtils 等)
此部分内容将包含 ResponseEntity. RestTemplate.WebUtils 等 1. ResponseEntity ① Sprring Mvc 中作为方法的返回值使用法 @Reque ...
- JPI中常使用的类介绍:
Math类: java.lang包下的 final,不可被继承, 其中的方法和属性都是静态的 其构造方法私有化了,其他类不可以使用构造方法. 向上取整:Math.ceil(double d); 向下取 ...
- Android(java)学习笔记110:Java中操作文件的类介绍(File + IO流)
1.File类:对硬盘上的文件和目录进行操作的类. File类是文件和目录路径名抽象表现形式 构造函数: 1) File(String pathname) Creat ...
- Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作
一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...
- 【转】 Key/Value之王Memcached初探:二、Memcached在.Net中的基本操作
一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...
- 【转载】Memcached在.Net中的基本操作
一.Memcached ClientLib For .Net 首先,不得不说,许多语言都实现了连接Memcached的客户端,其中以Perl.PHP为主. 仅仅memcached网站上列出的语言就有: ...
随机推荐
- pmm的安装,这里推荐下载官方提供的脚本,直接执行这个脚本就可以完成安装
脚本内容如下: #!/bin/sh set -o errexit set -o xtrace root_is_needed='no' check_command() { command -v &quo ...
- nginx location rewrite 禁止访问某个目录
Location 指令,是用来为匹配的 URI 进行配置 http://www.baidu.com/test/index.php?a=1&b=ture 这里面/test/index.php ...
- vue tab嵌入iframe切换不刷新,相对完整的方案
说到Vue的简单.便捷.高效,谁用谁喜欢,自然企业应用也来玩一把,三大经典组件:树控件,网格控件,选项卡控件: 本章先说选项卡tab控件的嵌入iframe. 本次主要解决以下问题: 1.tab控件混合 ...
- LightGBM与评分卡
调参策略 最大化 off_ks + 0.8(off_ks-train_ks) import pandas as pd from sklearn.metrics import roc_auc_score ...
- 原创 linux 爬虫拨号服务器完整设置
[root@cloud ~]# cat /home/bh.sh #!/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin:/sbin/ifconfig /usr/s ...
- 怎样提交社区项目Karbor的Bug?
1.登录社区Karbor Launchpad地址: https://bugs.launchpad.net/karbor/+filebug 输出bug简介,点击Next按钮. 2.填写Bug描述,完成B ...
- SpringCloud学习成长之路 六 cloud配置中心
一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管理,实时更新,所以需要分布式配置中心组件.在Spring Cloud中,有分布式配置中心组件spring cloud config ...
- 用Dev C++编写第一个C语言程序
不少新同学表示对计算机类专业有些担忧,那么可以趁军训期间提前玩玩. 学校一般使用VS2008进行编程,VS2008功能强大,内容丰富,体积也比较大.如果只关注C语言编程的话,有一个非常轻便的软件Dev ...
- 【已解决】HttpWebRequest的GetResponse或GetRequestStream偶尔超时 + 总结各种超时死掉的可能和相应的解决办法
[问题] 用C#模拟网页登陆,其中去请求几个页面,会发起对应的http的请求request,其中keepAlive设置为true,提交请求后,然后会有对应的response: resp = (Http ...
- Windows下免费的屏幕录制软件——EV录屏——推荐
EV录屏,现在使用起来效果还不错. 软件地址:https://www.ieway.cn/evcapture.html