`
webcode
  • 浏览: 5929379 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

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

 
阅读更多

第一讲 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);
?>

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics