• php5.4之分布式缓存memcache(windows7下安装配置)


    版权声明:本文为博主原创文章,未经博主同意不得转载。 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:webEvememcached(下载后的解压文件夹)
    执行 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:webEvememcached
    2. 在终端(也即cmd命令界面)下输入 ‘D:webEvememcachedmemcached.exe -d install’ 安装
     
    3. 再输入:'D:webEvememcachedmemcached.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的值  
    ?>

  • 相关阅读:
    了解 C++ 默默编写并调用的函数
    确保对象在被使用前的初始化
    尽可能使用 const
    尽量多的以 const/enum/inline 替代 #define
    六 GPU 并行优化的几种典型策略
    五 浅谈CPU 并行编程和 GPU 并行编程的区别
    四 GPU 并行编程的存储系统架构
    三 GPU 并行编程的运算架构
    求解线性方程组的三种基本迭代法
    C#基础 特殊集合(栈集合、队列集合、哈希表集合)
  • 原文地址:https://www.cnblogs.com/mqxnongmin/p/10742607.html
Copyright © 2020-2023  润新知