• php当中的memcache应用


    所需环境:

    php 5.3.3

    apache 2.2.7

    mysql 5.5.8

    解压Memcached_1.2.5文档,cmd下执行memcached.exe -d -install

    将php5.3_vc6_memcachedll文档解压,将php_memcache.dll文件复制到php安装目录的ext文件目录中。

    然后在php.ini 当中填上这句话:extension="php_memcache.dll"

    在phpinfo()下查看,是否引用了memcache扩展。

    测试代码:

    1. <?php  
    2. //连接  
    3. $mem = new Memcache;  
    4. $mem->connect("127.0.0.1", 11211);  
    5.   
    6. //保存数据  
    7. $mem->set('key1', 'This is first value', 0, 60);  
    8. $val = $mem->get('key1');  
    9. echo "Get key1 value: " . $val ."<br />";  
    10.   
    11. //替换数据  
    12. $mem->replace('key1', 'This is replace value', 0, 60);  
    13. $val = $mem->get('key1');  
    14. echo "Get key1 value: " . $val . "<br />";  
    15.   
    16. //保存数组  
    17. $arr = array('aaa', 'bbb', 'ccc', 'ddd');  
    18. $mem->set('key2', $arr, 0, 60);  
    19. $val2 = $mem->get('key2');  
    20. echo "Get key2 value: ";  
    21. print_r($val2);  
    22. echo "<br />";  
    23.   
    24. //删除数据  
    25. $mem->delete('key1');  
    26. $val = $mem->get('key1');  
    27. echo "Get key1 value: " . $val . "<br />";  
    28.   
    29. //清除所有数据  
    30. $mem->flush();  
    31. $val2 = $mem->get('key2');  
    32. echo "Get key2 value: ";  
    33. print_r($val2);  
    34. echo "<br />";  
    35. //关闭连接  
    36. $mem->close();  
    37.   
    38. $memcachehost = '192.168.10.1';  
    39. $memcacheport = 11211;  
    40. $memcachelife = 60;  
    41. $memcache = new Memcache;  
    42. $memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");  
    43. $query="select * from user limit 10";  
    44. $key=md5($query);  
    45. if(!$memcache->get($key))  
    46. {  
    47.         $conn=mysql_connect("192.168.30.1","root","passwd");  
    48.         mysql_select_db(users);  
    49.         $result=mysql_query($query);  
    50.         while ($row=mysql_fetch_assoc($result))  
    51.         {  
    52.             $arr[]=$row;  
    53.         }  
    54.         $f = 'db';  
    55.         $memcache->add($key,serialize($arr),0,30);  
    56.         $data = $arr ;  
    57. }  
    58. else{  
    59.         $f = 'mem';  
    60.     $data_mem=$memcache->get($key);  
    61.     $data = unserialize($data_mem);  
    62. }  
    63. echo $f;  
    64. echo "";  
    65. //print_r($data);  
    66. foreach($data as $a)  
    67. {  
    68.         echo $a[user_id]._.$a[email];  
    69.         echo "";  
    70. }  
    71. ?>  


     

    新闻系统的应用:

     

     
      1. //==============memcache  
      2. $memcachehost = '127.0.0.1';  
      3. $memcacheport = 11211;  
      4. $memcachelife = 60;  
      5. $memcache = new Memcache;  
      6. $memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");  
      7. //==============新闻  
      8.   
      9.  $sql="SELECT id,title,left(title,16) as biaoti,date_time FROM `p_newsbase` where shenhe='1' order by id DESC limit 7 ";  
      10.  $query=$db->query($sql);  
      11.  $key=md5($query);  
      12.  while($row_news=$db->fetch_array($query)){  
      13.     $str=$row_news['biaoti'].$db->time_out($row_news['date_time']);  
      14.     $sm_news[]=array("name"=>$str,"title"=>$row_news['title'],"id"=>$row_news['id'],"date_time"=>$row_news['date_time']);  
      15.   
      16.  }  
      17.  if(!$memcache->get($key)){  
      18.     $memcache->add($key,serialize($sm_news),0,$memcachelife);  
      19.  }else{  
      20.     $data_mem=$memcache->get($key);  
      21.     $sm_news = unserialize($data_mem);  
      22.  }  
      23.  $smarty->assign("sm_news",$sm_news);
  • 相关阅读:
    Dapper使用
    EF5.X Code First表关联与延迟加载
    EF Code First 学习笔记:关系
    Entity Framework
    MVC3+EF4.1学习系列(五)----- EF查找导航属性的几种方式
    QML与C++混合编程
    如何将信号从javascript发射到qml
    qt quick中qml编程语言
    PyQt 5信号与槽的几种高级玩法
    静态编译OpenSSL并整合到Qt
  • 原文地址:https://www.cnblogs.com/xingmeng/p/2922383.html
Copyright © 2020-2023  润新知