网站地图    收藏   

主页 > php专栏 > php应用 >

php memcached安装与使用 - php高级应用

来源:自学PHP网    时间:2014-11-27 22:16 作者: 阅读:

[导读] 1 简介memcache模块是一个高效的守护进程,提供用于内存缓存的过程式程序和面向对象的方便的接口,特别是对于设计动态web程序时减少对数据库的访问 memcache也提供用于通信对话(session...

php memcached安装与使用

1.简介

memcache模块是一个高效的守护进程,提供用于内存缓存的过程式程序和面向对象的方便的接口,特别是对于设计动态web程序时减少对数据库的访问.memcache也提供用于通信对话(session_handler)的处理.

1.1.memcache在php.ini中的配置项列表 memcache在php.ini中的配置项列表 

名称 默认值 是否可变 改变日志

  1. memcache.allow_failover  
  2. “1”  
  3. php_ini_all  
  4. available since memcache 2.0.2. 
  5.  
  6. memcache.max_failover_attempts  
  7. "20"  
  8. php_ini_all  
  9. available since memcache 2.1.0. 
  10.  
  11. memcache.chunk_size  
  12. "8192"  
  13. php_ini_all  
  14. available since memcache 2.0.2. 
  15.  
  16. memcache.default_port  
  17. "11211"  
  18. php_ini_all  
  19. available since memcache 2.0.2. 
  20.  
  21. memcache.hash_strategy  
  22. "standard"  
  23. php_ini_all  
  24. available since memcache 2.2.0. 
  25.  
  26. memcache.hash_function  
  27. "crc32"  
  28. php_ini_all  
  29. available since memcache 2.2.0. 
  30.  
  31. session.save_handler  
  32. "files"  
  33. php_ini_all  
  34. supported since memcache 2.1.2 
  35.  
  36. session.save_path  
  37. ""  
  38. php_ini_all  
  39. supported since memcache 2.1.2 ////开源代码phpfensi.com 

有关 php_ini_* 常量进一步的细节与定义参见php手册php.ini 配置选项.下面摘一段代码,给大家一个直观的印象:(假设memcached安装在172.10.10.10上面,端口号12121):

  1. $memcache = new memcached(); 
  2. $memcahce->connect('172.10.10.10', 12121); 
  3. $memcache->set('key''value');//开源代码phpfensi.com 
  4. $memcache->get('key'); 

上面的主要完成了memcached的简单操作流程:连接memcached服务器,设置值,取值('key'的值是'value');

这里需要向大家说明一下addserver函数和connect函数,addserver是将多个服务器放在连接池,而connect只是将连接某一台服务器,如果在使用了addserver,再使用connect,这里就会只使用一台服务器,以下代码是简单模拟的客户端操作:

  1. $fp = fsocketopen('172.10.10.10', 12121, $errorno$errstr, 1); 
  2. if(!$fp
  3.   echo "$errstr"
  4. else 
  5.   $out = "get key rn"
  6.   fwrite($out); 
  7.   while(!feof($fp)) 
  8.     $str  . = fgets($fp); 
  9.   if(stripos($str'end') ===0)//开源代码phpfensi.com 
  10.     exit("no value find"
  11.   $arr = implode('rn'$str); 
  12.   echo $arr[1]; 

简单解释上面的代码,使用fsocketopen打开服务器的socket通讯接口,然后向其发送get key命令,然后获取返回的数据,并解析返回的数据,这里都没有做异常的处理,在编程的时候要填 memcached 是一个键值存储系统,它将关键数据存储在内存中,大大减少存取数据的时间,使用memcached的好处不言而喻,它不仅减少了系统访问数据库的压力,而且提高系统的反应速度,至于什么样的系统需要使用memcache,笔者建议数据量大,访问频繁系统可以采取memcached作为缓存的中间层.

使用memcached的缺点除了增加程序的代码量,还有就是不能保证数据库的实时性,另外在第一次初始化数据库会需要额外的时间,但是这些的缺点比起它的优点是很微不足道.

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论