解析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 相关文章推荐
第十节 抽象方法和抽象类 [10]
Oct 09 PHP
最省空间的计数器
Oct 09 PHP
比较好用的PHP防注入漏洞过滤函数代码
Apr 11 PHP
高质量PHP代码的50个实用技巧必备(上)
Jan 22 PHP
详解WordPress中添加友情链接的方法
May 21 PHP
PHP中串行化用法示例
Nov 16 PHP
PHP设置Cookie的HTTPONLY属性方法
Feb 09 PHP
php模仿qq空间或朋友圈发布动态、评论动态、回复评论、删除动态或评论的功能(中)
Jun 11 PHP
php 猴子摘桃的算法
Jun 20 PHP
Laravel5.7框架安装与使用学习笔记图文详解
Apr 02 PHP
php设计模式之策略模式应用案例详解
Jun 17 PHP
Docker 安装 PHP并与Nginx的部署实例讲解
Feb 27 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
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
php使用ffmpeg向视频中添加文字字幕的实现方法
2016/05/23 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
Javascript !!的作用
2008/12/04 Javascript
jquery 常用操作整理 基础入门篇
2009/10/14 Javascript
js showModalDialog 弹出对话框的简单实例(子窗体)
2014/01/07 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
2015/02/04 Javascript
zepto中使用swipe.js制作轮播图附swipeUp,swipeDown不起效果问题
2015/08/27 Javascript
JavaScript实现字符串与日期的互相转换及日期的格式化
2016/03/07 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
学习使用jQuery表单验证插件和日历插件
2017/02/13 Javascript
使用vs code开发Nodejs程序的使用方法
2017/09/21 NodeJs
vue项目使用axios发送请求让ajax请求头部携带cookie的方法
2018/09/26 Javascript
微信小程序实现列表页的点赞和取消点赞功能
2018/11/02 Javascript
ES6 Map结构的应用实例分析
2019/06/26 Javascript
NodeJS有难度的面试题(能答对几个)
2019/10/09 NodeJs
JS代码优化的8点建议
2020/02/04 Javascript
jQuery 添加元素和删除元素的方法
2020/07/15 jQuery
简单介绍Python中的decode()方法的使用
2015/05/18 Python
python3+PyQt5实现柱状图
2018/04/24 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
python3连接kafka模块pykafka生产者简单封装代码
2019/12/23 Python
python 爬取疫情数据的源码
2020/02/09 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
《尊严》教学反思
2014/02/11 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
中秋手机店促销方案
2014/06/16 职场文书
国庆65周年演讲稿:回首往昔,展望未来
2014/09/21 职场文书
社区文明倡议书
2015/04/28 职场文书
python实现语音常用度量方法的代码详解
2021/05/25 Python
Android自定义双向滑动控件
2022/04/19 Java/Android