版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/qq1355541448/article/details/36663203

使用理由:就是为了频繁查询数据库。并且数据有多!那么存到memcached内存就能够避免数据库的不断被訪问,从而提速

一、安装memcache

memcached在windows7上的安装问题
 如今安装包:http://download.csdn.net/detail/qq1355541448/7587663 或者 http://www.jb51.net/softs/44843.html 
 memcache的安装包
错误:
通过cmd命令行进入到D:\webEve\memcached(下载后的解压文件夹)
执行 memcached.exe -d install
 
报错“ failed to install service or service already installed”
 
解决方法:
  www.2cto.com  
管理员身份安装。首先找出cmd.exe的原文件
右击以管理员身份执行。接下来就OK(win7下的用户还真麻烦).
 
Windows下的Memcache安装:
1. 下载memcache的windows稳定版,解压放某个盘以下,比方在D:\webEve\memcached
2. 在终端(也即cmd命令界面)下输入 ‘D:\webEve\memcached\memcached.exe -d install’ 安装
 
3. 再输入:'D:\webEve\memcached\memcached.exe -d start’ 启动。NOTE:
以后memcached将作为windows的一个服务每次开机时自己主动启动。这样server端已经安装完成了。
4.下载php_memcache.dll,请自己查找相应的php版本号的文件
5. 在php.ini 增加一行 ‘extension=php_memcache.dll’
6.又一次启动Apache。然后查看一下phpinfo,假设有memcache,那么就说明成功安装。
 
memcached的基本设置:
 
-p 监听的port
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在执行的memcached服务
-d install 安装memcached服务  www.2cto.com  
 
-d uninstall 卸载memcached服务
-u 以的身份执行 (仅在以root执行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同一时候连接数。默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间。key+value+flags默认是48
-h 显示帮助

二、安装好memcache进行memcached在php的扩展配置   

    php_memcached.dll csdn资源   http://download.csdn.net/detail/king_inguctmnv/5793675

    在php.ini中粘贴开启扩展   同一时候将此文件放到ext扩展文件里
那如今memcache就ok了能够用了,来试试。
<?php 
header("Content-type:text/html;charset=utf-8");
$host = '127.0.0.1:3306'; 
$user = 'root'; 
$passwd = ''; 
$db = 'test'; 
$conn = mysql_connect($host,$user,$passwd); 
mysql_select_db($db,$conn); 
mysql_query("set names utf8",$conn); 
$sql = 'select * from syl_rollback order by id desc'; 
$result = mysql_query($sql,$conn); 
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)){ 
$test_key[] = $row; 

echo "<pre>";
var_dump($test_key);
echo "</pre>";
echo "<hr />";
$sql = md5($sql); 
$mem = new Memcache;                           //实例化memcache对象
$mem->connect("192.168.1.134", 11211);        
//连接本地ip 11211是memcache的port号
$mem->set($sql,$test_key, MEMCACHE_COMPRESSED, 600);  //将$test_key数组存放在键值为$sql里面注意:memcache缓存好的数据。有生存时间,默认会一个小时候过期。当然能够自己设置一个过期时间了,
 600就是$sql这个键值相应的生存时间
echo "<pre>";
print_r($mem->get($sql));                      //获取键值为$sql的值
echo "</pre>";
 
?>
例二:
<?php 
header("Content-type:text/html;charset=utf8");
 
$sql = 'select * from syl_rollback order by id desc'; 
 
$sql = md5($sql); 
$mem = new Memcache; 
$mem->connect("192.168.1.134", 11211); 
//$mem->flush();  //对缓存数据进行清空
$mem->add("hehe","memcahce");  //给键值为hehe的设值value为memcache
echo $mem->get("hehe"),"<hr />"; //读取键值为hehe的值
echo "<pre>";
print_r($mem->get($sql)); 
echo "</pre>";
?>

此时,memcache你就基本上能够使用了,怎样应用到你的站点中呢?

首先,封装好一个memcache实例化的类,然后进行调用,站点中获取数据时。先进性memcache缓存中读取。假设读取到了,即使用读取到的数据,显示到页面,此时就不操作数据库了。节省了好多时间啊!

假设没用从缓存中读到数据。即操作数据库获取!

也就是先和memcache要数据,假设没有再去数据库读,注意读取后,立即存到memcache中
执行a.php后b.php就可以读取,注意设置了过期时间是5秒
小样例: 
a.php
<?php
header("Content-type:text/html; charset=utf-8");

/**
 *  memcached first class
 */  
$mem = new Memcache; 
$mem->connect("localhost", 11211);  
$mem->flush();  //对缓存数据进行清空 
$mem->add("hehe","memcahce",MEMCACHE_COMPRESSED,5);  //给键值为hehe的设值value为memcache
echo $mem->get("hehe"),"<hr />"; //读取键值为hehe的值 
?>

b.php
<?php
header("Content-type:text/html; charset=utf-8");

/**
 *  memcached first class
 */  
$mem = new Memcache; 
$mem->connect("localhost", 11211);    
echo $mem->get("hehe"),"<hr />"; //读取键值为hehe的值  
?>

php5.4之分布式缓存memcache(windows7下安装配置)的更多相关文章

  1. Windows7下安装配置PostgreSQL10

    PostgreSQL安装: 一.windows7下安装过程首先上PostgreSQL官方网站的下载页面https://www.postgresql.org/download/windows/,下载本软 ...

  2. windows7下安装配置phonegap3.0 (cordavo)开发环境 (涉及android sdk配置)

    之前在mac上安装调试过phonegap,现在公司用的是windows7,所以不得不再进行一次windows下的配置工作,顺便也写下来了 主要麻烦的地方是要在win7下添加好几个环境变量,这一块地方特 ...

  3. windows7下安装apache+PHP5.3

    Apache+PHP 安装与配置 最近在学习PHP,所以就在windows7下安装了PHP的开发环境.之所以没有选择集成的软件,如WAMP.AppServ等套件,是为了单独安装这些软件,有助于更加深入 ...

  4. 分布式缓存Memcache和Redis

    引言 针对于如今计算机的CPU和网络设施,相应用程序来说,运行效率的瓶颈.已经不是代码的长度(实现同一个功能)和带宽了,而是,代码訪问资源的过程.即:让我们的程序慢下来的罪魁祸首就是IO操作. 程序从 ...

  5. windows7下安装php的imagick和imagemagick扩展教程

    这篇文章主要介绍了windows7下安装php的imagick和imagemagick扩展教程,同样也适应XP操作系统,Win8下就没测试过了,需要的朋友可以参考下 最近的PHP项目中,需要用到切图和 ...

  6. 在Hadoop1.2.1分布式集群环境下安装hive0.12

    在Hadoop1.2.1分布式集群环境下安装hive0.12 ● 前言: 1. 大家最好通读一遍过后,在理解的基础上再按照步骤搭建. 2. 之前写过两篇<<在VMware下安装Ubuntu ...

  7. windows7下virtualBox配置识别usb

    在windows7下安装virtualBox后.在虚拟机里面是不能识别手机的,此时我们须要做一些配置. 一. virtualBox菜单: 管理–全局设定–扩展–加入包(右側,virtualBox ex ...

  8. Windows7下安装cpu版的Tensorflow

    windows7下安装python3.5 1.下载python-3.5.2-amd64.whl https://www.python.org/downloads/release/python-352/ ...

  9. windows7下docker配置镜像加速

    原文地址:https://blog.csdn.net/slibra_L/article/details/77505003 1,本文目的:windows7下docker配置镜像加速,下面是具体操作步骤: ...

随机推荐

  1. shell的编程结构体(函数、条件结构、循环结构)

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 1.1 shell函数 在shell中,函数可以被当作命令一样 ...

  2. 【转载】Sqlserver的SQL语句实现分页查询

    在应用程序的开发中,如果数据库中的数据量过于的庞大,则需要针对查询数据做分页处理,取出对应分页中的数据,在Sqlserver分页的语句写法中,有两种比较常用,一种是数据表中含有自增量Id的情况,可以根 ...

  3. 使用C#编写自己的代码生成器,附代码讲解(一)

    使用过代码生成器的开发人员应该知道,通过代码生成器生成项目的代码,可以大大的减少重复编码的时间,提供项目开发的效率,将自己从繁杂重复的代码中解放出来.现在网络上也有很多的开源的代码生成器或者使用比较广 ...

  4. 关于toggle事件委托的处理

    当html页面加载后,页面上需要再次动态加载的按钮等事件的绑定,我们有两种处理方案 一.再次加载后进行绑定 二.使用委托进行绑定 而toggle事件是无法直接绑定的,这时可以转化为click的事件,并 ...

  5. c# 封装 Request操作类

    /// <summary> /// 判断当前页面是否接收到了Post请求 /// </summary> /// <returns>是否接收到了Post请求</ ...

  6. Java学习笔记之——类与对象

    1.参数的传递方式 1)值传递 2)引用传递 2.类和对象: (1)类的定义: public class 类名{ 类型 属性1: 类型 属性2: ……… public 返回值类型 方法名1(形参){ ...

  7. 在CentOS下的docker容器中部署spring boot应用的两种方式

    我们通常在 windows 环境下开发 Java,而通常是部署在Linux的服务器中,而CentOS通常是大多数企业的首选,基于Docker的虚拟化容器技术,多数Java应用选择这种方式部署服务.本文 ...

  8. 网络安全之sql注入

    1.何为Sql注入? 所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令.具体来说,它是利用现有应用程序,将(恶意的)SQ ...

  9. JS的一些小知识

    1.     0.1+0.2==0.3? 结果为false 原因:由于计算机是用二进制来存储和处理数据数字,不能精确表示浮点数,而JavaScript是一种弱类型语言,没有相应的封装类来处理浮点数运算 ...

  10. 【读书笔记】iOS-viewWillAppear:和viewDidLoad:

    viewDidLoad:是视图第一次载入到内存中后调用的,viewWillApear:则是在每次视图显示到屏幕上之前调用. 参考资料:<iOS编程指南>