解析php中memcache的应用


Posted in PHP onJune 18, 2013

所需环境:
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 相关文章推荐
php 设计模式之 单例模式
Dec 19 PHP
ThinkPHP之import方法实例详解
Jun 20 PHP
php eval函数一句话木马代码
May 21 PHP
php对二维数组进行相关操作(排序、转换、去空白等)
Nov 04 PHP
CodeIgniter辅助之第三方类库third_party用法分析
Jan 20 PHP
PHP时间戳格式全部汇总 (获取时间、时间戳)
Jun 13 PHP
PHP+JQuery+Ajax实现分页方法详解
Aug 06 PHP
mac下多个php版本快速切换的方法
Oct 09 PHP
ecshop适应在PHP7的修改方法解决报错的实现
Nov 01 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
Sep 22 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
PHP中散列密码的安全性分析
Jul 26 PHP
PHP实现的封装验证码类详解
Jun 18 #PHP
php empty()与isset()区别的详细介绍
Jun 17 #PHP
php include和require的区别深入解析
Jun 17 #PHP
浅析php header 跳转
Jun 17 #PHP
解析php中heredoc的使用方法
Jun 17 #PHP
深入PHP5中的魔术方法详解
Jun 17 #PHP
php.ini 配置文件的深入解析
Jun 17 #PHP
You might like
PHP Google的translate API代码
2008/12/10 PHP
PHP 采集获取指定网址的内容
2010/01/05 PHP
PHP无刷新上传文件实现代码
2011/09/19 PHP
在PHP上显示JFreechart画的统计图方法
2013/11/03 PHP
php共享内存段示例分享
2014/01/20 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
PHPCMS忘记后台密码的解决办法
2016/10/30 PHP
PHPExcel中文帮助手册|PHPExcel使用方法(分享)
2017/06/09 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
js将控件隐藏及display属性的使用介绍
2013/12/30 Javascript
关于jQuery判断元素是否存在的问题示例探讨
2014/07/21 Javascript
JQuery 传送中文乱码问题的简单解决办法
2016/05/24 Javascript
移动端刮刮乐的实现方式(js+HTML5)
2017/03/23 Javascript
vue框架下部署上线后刷新报404问题的解决方案(推荐)
2019/04/03 Javascript
在vue中对数组值变化的监听与重新响应渲染操作
2020/07/17 Javascript
[50:24]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
Python实现计算最小编辑距离
2016/03/17 Python
详解python中executemany和序列的使用方法
2017/08/12 Python
Python一键查找iOS项目中未使用的图片、音频、视频资源
2019/08/12 Python
python之PyQt按钮右键菜单功能的实现代码
2019/08/17 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
Matplotlib自定义坐标轴刻度的实现示例
2020/06/18 Python
用python进行视频剪辑
2020/11/02 Python
python在协程中增加任务实例操作
2021/02/28 Python
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
开办饭店创业计划书
2013/12/28 职场文书
销售业务员岗位职责
2014/01/29 职场文书
网络书店创业计划书
2014/02/07 职场文书
安全责任书范文
2014/03/12 职场文书
个人批评与自我批评范文
2014/10/17 职场文书
本溪关门山导游词
2015/02/09 职场文书
幽默导游词应该怎么写?
2019/08/26 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang