解析php中memcache的应用

前端技术 2023/09/01 PHP
所需环境:
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);

本文地址:https://www.stayed.cn/item/2060

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。