韩顺平 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);
?>

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值