memcache之旅(二)
来源:互联网 发布:世界ol装备进阶数据 编辑:程序博客网 时间:2024/06/15 22:56
memcache在各种语言中的使用都是很简单的,例如在php中就有memcache和memcached两个封装类,在java中也有封装好的MemCachedClient类,还有更多的方法操作memcache。最近在做php的项目,所以暂时就写下php中的memcache吧。
首先,我们自己封装一个mc类,以备后续需求:
class mc {
private $m;
private $host;
private $port;
private $expire;
public function __construct() {
$this->host = MEMCACHED_HOST;
$this->port = MEMCACHED_PORT;
$this->expire = MEMCACHED_EXPIRE;
$this->m = new Memcache();
$r = $this->m->connect($this->host, $this->port);
}
public function __destruct() {
$this->m->close();
}
public function get($key) {
return $this->m->get($key);
}
public function set ($key , $val , $expire = 0) {
if($expire > 0){
$this->m->set($key,$val,0,$expire);
}else
$this->m->set($key,$val,0,$this->expire);
}
public function del ($key) {
$this->m->delete($key,0);
}
public function append($key, $value){
$this->m->append($key,$value);
}
}
if (!class_exists("Memcache")) {
class Memcache {
public function connect ($host,$port) {
return false;
}
public function set ($key,$val,$t,$expire) {
}
public function get ($key) {
return false;
}
public function close () {
}
}
}
这里说两点:1,$this->m->delete($key,0)如果没有这个0,可能会失败;2,之前在未安装memcache扩展情况下就调用了这个类,致使出错,所以有了if (!class_exists("Memcache")) {···}这段代码。
有了这个类,当memcache服务器开启时,就可以直接将一些数据缓存到memcache中(set方法),读的时候也可以优先从memcache中读取(get方法)。
总的来说,memcache的是用是很方便的,单次操作时间能提升十倍以上,用apache的ab测试工具并发数也有很大提升。
再说一下centOS中memcache扩展的安装。
先下载文件:wget-chttp://pecl.php.net/get/memcache-3.0.8.tgz
解压:tar-zxvf memcache-3.0.8.tgz
cd到解压目录:cd memcache-3.0.8
执行phpize:/usr/local/php/bin/phpize
执行:./configure--with-php-config=/usr/local/php/bin/php-config--enable-memcache--with-zlib-dir
安装:make && make install
这样,如果安装成功的话会给出so文件的路径,cd到此路径中就可以看到so文件,再讲这个文件添加到php.ini文件中,即添加一行extension= /usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/memcache.so,最后重启php即可在phpinfo中看到memcache扩展!
- memcache之旅(二)
- Python之memcache(二)
- memcache之旅(一)
- memcache读书笔记(二)
- Memcache-Java-Client-Release源码阅读(之二)
- 搭建JAVAEE Memcache 集群环境之安装memcache(二)
- MemCache深入学习(二)
- PHP操作Memcache(二)
- Memcache(MC)系列(二)Linux下Memcache安装
- Memcache初探(二) ---- Windows下Memcache安装
- Memcache系列(二)PHP安装memcache扩展
- Memcache学习笔记(二):PHP中使用memcache
- memcache(二)php操作memcache
- memcache linux下的使用(二)
- Ehcache Memcache Redis 初步(二)
- Memcache介绍、安装、使用(二)
- PHP缓存技术:memcache函数详解之二
- 【转】PHP缓存技术:memcache函数详解之二
- 使用 Codec Engine 的 API 函数(六)
- Linux内核源文件以及头文件介绍
- 数据结构JAVA---选择排序
- uva 10820 poj 2407 poj 1284 poj 2478 poj 3090 (欧拉函数入门)
- UVA 10420-List of Conquests(STL-map的应用)
- memcache之旅(二)
- php empty()和isset()的区别
- VIM解决中文编码问题
- Xcode6 用企业级账号打包App没有plist文件
- vbs实现unicode和ascii编码转换
- scala 简要: xml处理
- 数据结构JAVA--冒泡排序
- QEMU KVM 提纲
- 数据结构JAVA-----对像排序