`
wangking717
  • 浏览: 257251 次
  • 性别: Icon_minigender_2
  • 来自: 成都
社区版块
存档分类
最新评论

php使用memcache进行数据库缓存

 
阅读更多
概念
memcache 是一个高效的分布式的内存对象缓存系统,他可以支持把php的各种数据(数组,对象,基本数据类型)放在它管理的内存中

 

原理图

 

安装memcached

 

yum install memcached #安装memcached
chkconfig --add memcached #设置系统自动启动
vim /etc/init.d/memcached #设置memcached启动的参数
 

 

安装memcache client  php插件

 

wget http://pecl.php.net/get/memcache-2.1.2.tgz  
tar -xvf memcache-2.1.2.tgz  
cd memcache-2.1.2  
phpize && ./configure --enable-memcache && make  
#拷贝memcache.so到php的扩展module中
#修改php.ini文件,添加extension=memcache.so
 

 

 

代码使用

 

<?php
 //1.实例化一个Memcache对象
  $mem=new Memcache;
 //2. 连接到指定的memcache中
  $mem->connect("127.0.0.1",11211);
 //0表示不压缩数据,如果使用压缩MEMCACHE_COMPRESSED
  if(!$mem->add("name","test1",0,30)){
       echo "name 已经存在了";
  }else{
   echo "ok!";
  }
 //可以放入数值
  if(!$mem->add("age",100,0,30)){
  echo "age 已经存在了";
  }else{
   echo "ok!";
  }
 //可以放入boolean
  if(!$mem->set("ok",true,0,30)){
      echo "ok 保存成功";
  }else{
   echo "ok!";
  }
 //放入数组
 $arr1=array("aa"=>"北京","bb"=>"天津");
  
 //对数组进行序列化,在网络传输的时候,为了保证,数据类型的不丢失,
 //先序列化,再发生.
  //$arr1=serialize($arr1);
  $arr2=json_encode($arr1);
  print_r($arr2);
  
  $mem->add("arr",$arr1,MEMCACHE_COMPRESSED,100);
 //对象
  require "Person.class.php";
  $person=new Person(10,"xiaoming");
  $mem->add("per1",$person,MEMCACHE_COMPRESSED,100);
 //取出
  $per2=$mem->get("per1");
  var_dump($per2);
 echo "对象名字=".$per2->name;
  //string, int,float, boolean  array object null resource
  
 //不能把resource 类型放入到memcache
  $con=mysql_connect("localhost","root","root");
  echo "<br/>";
  var_dump($con);
  $mem->add("mylink",$con);
  
?>

关于如何使用多个memcached 缓存服务器.
<?php
 $mem=new Memcache();
    //如果我们网站,需要多个memached缓存系统.
    //$mem->connect("localhost",11211); (立即向localhost的11211端口发出连接)
 $mem->addServer("192.168.1.100",11211);//256 ->10m
 $mem->addServer("192.168.1.200",11211);
 $mem->addServer("192.168.1.222",11211);
     //创建多个memcache服务使用.
 //addServer 会根据负载均衡算法,自动放入每个服务器
 $mem->add("name","zs",0,100);
?>

 

 

注意:string, int,float, boolean  array object null resource 中除了 resource 不能存放,其它都可以.
 

  • 大小: 28.7 KB
分享到:
评论

相关推荐

    php数据库缓存Memcache操作类.zip

    整理了一个Memcache数据缓存操作类库文件,希望对各位会有帮助,操作类就是把一些常用的一系列的数据库或相关操作写在一个类中,这样调用时我们只要调用类文件,如果要执行相关操作就直接调用类文件中的方法函数就可以...

    数据库缓存扩展

    这是memcache.dll5.3.5的一个扩展,下载只要装到PHP里的ext文件下就可以

    简单的php数据文件缓存类库.zip

    数据文件缓存的做法我们常用的有php文件缓存与利用memcache来缓存数据,下面...缓存cache时间上的控制,通过获取缓存文件的创建时间和现在的时间进行对比,如果没有到更新时间,直接读取缓存,如果到了更新时间,查询数据库.

    php缓存Memcache的Queue的用法类.zip

    分享一篇关于php中缓存Memcache的Queue的用法,Memcache是一种缓存技术,可以提升程序的性能减轻服务器的压力,目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升...

    php_memcache.dll(php5.4)

    memcache是一套分布式的高速缓存系统,由LiveJournal的Brad Fitzpatrick开发,但目前被许多网站使用以提升网站的访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。这是一套开放源...

    一个MySQL数据库操作类,支持连贯操作,查询结果自动进行缓存管理

    今天刚做的一个MySQL操作类,基本功能已经完成,支持连贯操作,支持基本的增改删差,...自动缓存管理,可以选择文件缓存,或者memcache(也可以很方便的扩展其他缓存方式)。 使用方法我都写在代码里了,大家看看吧。

    Memcache 基础教程(php 缓存)

    Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。

    Memcache的使用和协议分析详解

    Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力

    PHP把实例化的class对象永久保存

    不必每个访客建立一个会话,目前我的做法是把实例化的类存入了$_SESSION['c']内,这样的做法是比较方便,但是弊端是每个访客都要开一个新的会话,大家拿到代码之后可以修改一下把类的实例存入到memcache或数据库内都行

    php的内存缓存memcached类代码

    一个php内存缓存Memcached类代码,构造方法,用于添加服务器并创建memcahced对象,获取memcached对象,检查mem是否连接成功,向memcache中添加数据,获取memcahce中保存的数据,删除和同一个表相关的所有缓存。

    memcache 使用安装说明

    内附高老师的memcache安装说明 本人的使用示例和memcache windows下的安装包、PHP扩展包及linux的源码包 缓存技术是数据库的救星 希望大家多多交流

    php的Memcache方法介绍及应用实例

    Memcache PHP 扩展将为访问缓存提供一个简单的应用程序接口 (API)。要使用缓存,需要调用 API 来确定先前是否已缓存了对象。如果已经缓存,只需检索该对象并继续进行处理。否则,转至数据库、获取必需的数据、将其...

    php操作memcache缓存方法分享

    使不使用缓存技术并没有什么影响,但如果高并发的情况,使用缓存技术就显得很重要了,可以很好的减轻数据库和服务器的压力,当然解决高并发的技术有很多,这里只是以缓存的角度来说明使用memcache的便捷性和方便性,

    PHP数据库操作二:memcache用法分析

    Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。简单的说就是将数据调用到内存中,然后从...

    memcache2.2.6.0

    Memcache是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的hash表,它能够用来存储各种格式的数据,包括图像、视频、文件以及数据库检索的结果等。 win32位 5.3.8PHP对应的memcache 产品...

    PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例

    本文实例讲述了PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库。分享给大家供大家参考,具体如下: &lt;?php header("content-type:text/html;charset=utf-8"); @$atc=$_GET['atc']; $mem=new ...

    PHP代码生成器2.0(memcache)修正版

    2, 使用浏览器访问CreatModel.php生成数据库操作代码 3, 在所有页面引入Model/ Models.php 4, 至此已经可以开发了 欢迎与我交流讨论QQ:289597842 Email :jia5255@163.com 祝您好运! 张世甲 2012年10月

    php Memcache 中实现消息队列

    Memcache 一般用于缓存服务。但是很多时候,比如一个消息广播系统,需要一个消息队列。直接从数据库取消息,负载往往不行。如果将整个消息队列用一个key缓存到memcache里面.

    PHP中Memcache操作类及用法实例

    主要介绍了PHP中Memcache操作类及用法,以实例形式详细分析了Memcache类连接数据库及进行缓存操作的具体用法,非常具有实用价值,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics