解析php中memcache的应用

 更新时间:2013年06月18日 09:10:04   作者:  
本篇文章是对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扩展。

测试代码:
复制代码 代码如下:

<?php
//连接
$mem = new Memcache;
$mem->connect("127.0.0.1", 11211);
//保存数据
$mem->set('key1', 'This is first value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val ."<br />";
//替换数据
$mem->replace('key1', 'This is replace value', 0, 60);
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br />";
//保存数组
$arr = array('aaa', 'bbb', 'ccc', 'ddd');
$mem->set('key2', $arr, 0, 60);
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br />";
//删除数据
$mem->delete('key1');
$val = $mem->get('key1');
echo "Get key1 value: " . $val . "<br />";
//清除所有数据
$mem->flush();
$val2 = $mem->get('key2');
echo "Get key2 value: ";
print_r($val2);
echo "<br />";
//关闭连接
$mem->close();
$memcachehost = '192.168.10.1';
$memcacheport = 11211;
$memcachelife = 60;
$memcache = new Memcache;
$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");
$query="select * from user limit 10";
$key=md5($query);
if(!$memcache->get($key))
{
        $conn=mysql_connect("192.168.30.1","root","passwd");
        mysql_select_db(users);
        $result=mysql_query($query);
        while ($row=mysql_fetch_assoc($result))
        {
            $arr[]=$row;
        }
        $f = 'db';
        $memcache->add($key,serialize($arr),0,30);
        $data = $arr ;
}
else{
        $f = 'mem';
    $data_mem=$memcache->get($key);
    $data = unserialize($data_mem);
}
echo $f;
echo "";
//print_r($data);
foreach($data as $a)
{
        echo $a[user_id]._.$a[email];
        echo "";
}
?>

新闻系统的应用:
复制代码 代码如下:

//==============memcache
$memcachehost = '127.0.0.1';
$memcacheport = 11211;
$memcachelife = 60;
$memcache = new Memcache;
$memcache->connect($memcachehost,$memcacheport) or die ("Could not connect");
//==============新闻
 $sql="SELECT id,title,left(title,16) as biaoti,date_time FROM `p_newsbase` where shenhe='1' order by id DESC limit 7 ";
 $query=$db->query($sql);
 $key=md5($query);
 while($row_news=$db->fetch_array($query)){
  $str=$row_news['biaoti'].$db->time_out($row_news['date_time']);
  $sm_news[]=array("name"=>$str,"title"=>$row_news['title'],"id"=>$row_news['id'],"date_time"=>$row_news['date_time']);
 }
 if(!$memcache->get($key)){
  $memcache->add($key,serialize($sm_news),0,$memcachelife);
 }else{
  $data_mem=$memcache->get($key);
    $sm_news = unserialize($data_mem);
 }
 $smarty->assign("sm_news",$sm_news);

相关文章

  • PHP学习散记_编码(json_encode 中文不显示)

    PHP学习散记_编码(json_encode 中文不显示)

    今天使用json_encode转换数组的时候,出现了中文不显示的情况。
    2011-11-11
  • php摘要生成函数(无乱码)

    php摘要生成函数(无乱码)

    以前也写过一个PHP文章摘要生成方法(函数), 不过,不怎么好用,也出现乱码,现在再发布一个,这个函数是在某开源系统上拆下来了,希望对大家用用
    2012-02-02
  • PHP面向对象分析设计的61条军规小结

    PHP面向对象分析设计的61条军规小结

    你不必严格遵守这些原则,违背它们也不会被处以宗教刑罚。但你应当把这些原则看成警铃,若违背了其中的一条,那么警铃就会响起 。
    2010-07-07
  • PHP 信号管理知识整理汇总

    PHP 信号管理知识整理汇总

    这篇文章主要给大家整理汇总了PHP 信号管理知识的相关资料,需要的朋友可以参考下
    2017-02-02
  • PHP获取服务器端信息的方法

    PHP获取服务器端信息的方法

    这篇文章主要介绍了PHP获取服务器端信息的方法,通过一个自定义函数实现对服务器端系统版本、PHP版本、Apache版本等信息的获取,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11
  • php $_SERVER["REQUEST_URI"]获取值的通用解决方法

    php $_SERVER["REQUEST_URI"]获取值的通用解决方法

    在 PHP 众多预定义服务器变量中,$_SERVER["REQUEST_URI"] 算是经常用到的,但是这个变量只有 apache 才支持,因此,我们需要一个更加通用的方式来获取 REQUEST_URI 的值,本文就是结束这一问题的解决方案。
    2010-06-06
  • Discuz 5.0 中读取纯真IP数据库函数分析

    Discuz 5.0 中读取纯真IP数据库函数分析

    Discuz 5.0 中读取纯真IP数据库函数分析...
    2007-03-03
  • php Ubb代码编辑器函数代码

    php Ubb代码编辑器函数代码

    php Ubb代码编辑器函数代码,需要php中实现UBB解析的朋友可以参考下
    2012-07-07
  • PHP实现读取Excel文件的记录(二)

    PHP实现读取Excel文件的记录(二)

    在前文中介绍的方法有些麻烦,因为必须要加载很多的文件。本文介绍的方法简单了很多,只需要加载两个文件即可。需要的可以参考一下
    2022-03-03
  • PHP安全配置详细说明

    PHP安全配置详细说明

    PHP勿庸置疑是非常强大的服务器端脚本语言,但是强大的功能总是伴随着重大的危险,在这章里,你将学习到使用PHP的安全模式来阻止一些PHP潜在的危险因素。
    2011-09-09

最新评论