您的位置:首页 > 数据库 > Memcache

韩顺平 php视频教程 读书笔记 心得 memcache的安装和使用

2012-07-23 16:52 501 查看
第一讲 memcached的基本概念

memcached是danga的一个项目 ,最早是LiveJounal服务,最初是为访问加速而开发的。

memcached是一个高效的分布式的内存对象缓存系统。他可以支持把各种php的数据(array对象,基本数据类型,对象,资源不能放)放入到其管理的内存中。

内存里维护一个统一的巨大的hash表。

使用memcached的好处是什么?

注意并发量很大

例如做学生系统的查询:

a 传统的方法 直接查数据库

<?php

$stu_id=$_GET['stu_id']

//查询数据库

smarty->assign("view");

?>

b 页面静态化

<?php

$stu_id=$_GET['stu_id']

$html_file="stu_id.html";

if(memcached中有){

//显示

exit

}

?>

c 内存缓存

<?php

$stu_id=$_GET['stu_id']

if(file_exitsts($html_file)){

//显示

exit

}

//查询数据库

smarty->assign("view");

?>

第二讲 memcached的实际操作

安装 memcached -d install

停止 memcached -d stop

启动 安装 memcached -d start

需要的memcached的内存大于64M应当这样启动

memcached -m 256 -d start

LRU least Rcently used 算法

如果需要换端口 memcached -d -m 30 -l 127.0.0.1 -p 9000 -d start

使用工具

telnet 就能够直接使用缓存工具

php程序(1 memcache扩展;2memcached扩展 3 使用socket访问)

curd(create/read/update/delete)

add name 0 60 5 【说明add是指令】 是以键值对的形式存放。

get

set

add

replace

append

prepend

incr

decr

delete

flush_all 全部清空

stats

第二讲 memcached的实际使用

a php.ini中打开配置 extension=php_memcache.dll

b 复制php_memcache.dll

c 编程测试

添加

<?php

/*

* Created on 2012-7-23

*

* write by harry

*

*/

// use curd to discuzz

//1.实例化一个Memcache对象

$mem=new Memcache();

//2 连接到指定的

$mem->connect("127.0.0.1",11211);

//0表示不压缩数据,如要使用压缩MEMCACHE_COMPRESSED

$mem->add("name","shunpin",0,30);

$arr1=array("tinghua","beida");

$mem->add("arr",$arr1,100);

class person{

public $age;

public $name;

public function __construct($age,$name){

$this->age=$age;

$this->name=$name;

}

}

$per1=new person(10,"xiaoming");

$mem->add("per1",$per1,100);

?>

获取

<?php

/*

* Created on 2012-7-23

*

* write by harry

*

*/

$mem=new Memcache;

$mem->connect("127.0.0.1",11211);

$val=$mem->get("name");

echo $val;

$arr1=$mem->get("arr");

var_dump($arr1); //array(2) { [0]=> string(7) "tinghua" [1]=> string(5) "beida" }

//可以存入数值 字符串 boolean 如果放的ture 返回的是1 false 就是空 放入数组

require "add.php";

$per1=$mem->get("per1");

var_dump($per1);

//资源是放不进去的

?>

序列化 网络传输的时候,数据的类型保持不变,否则,类型丢失,先序列化,再发送;

serialize()

json_encode()

memcached的价值分析:

cookie/session/mem

关于如何使用多个memcached 缓存程序

<?php

/*

* Created on 2012-7-23

*

* write by harry

*

*/

//如果网站,需要多个memcached缓存系统

//connect 立即向localhost的11211端口发出连接

$mem=new Memcache();

$mem->addServer("192.168.1.100",11211);

$mem->addServer("192.168.1.200",11211);

$mem->addServer("192.168.1.222",11211);

//创建多个memcache服务使用

$mem->add("name","zs",100);

?>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐