zoukankan      html  css  js  c++  java
  • PHP之Memcache缓存详解

     

       Mem:memory缩写(内存):内存缓存

     

    1、  断电或者重启服务器内存数据即消失,即临时数据;

    Memcache默认端口:11211

    存入方式:key=>>value    lengh(长度)   time(过期时间)

    注意:不只是字符串,视频,声音,图片,文字等等都可以存;

    对比:

    Apache –消耗Cpu,用的内存很少

    Memcache-消耗内存比较多,CPU消耗较少 

    Memcache的安装

    如果安装了memcached不安装扩展,那么php无法操控memcached,但是命令行使用起来没有问题,如果安装了memcache扩展但是没有安装memcached服务,那么这个就无法使用 ,只有同时安装了memcached服务和memcache扩展才可以在PHP中使用memcached提高动态网站性能

    windows 安装memcached

    1、安装扩展:下载后解压(链接:http://pan.baidu.com/s/1gdWDjMz 密码:6isi)

      选择合适的版本,把php_memcache.dll放到php的ext目录子下,在php.ini中添加一行代码:extension=php_memcache.dll。重启服务

    2、安装服务:下载地址: http://www.2cto.com/uploadfile/2012/0713/20120713110308123.zip

        将下载好的文件解压到某个文件夹下,打开cmd命令行,进入memcached目录,执行memcached -d install命令,安装服务。

         如果在没有安装过的情况下,出现"failed to install service or service already installed"错误,可能是cmd.exe需要用管理员身份运行。

        

    3、启动服务,执行memcached -d start

    4、参数介绍

         -p 监听的端口 
        -l 连接的IP地址, 默认是本机 
       -d start 启动memcached服务 
       -d restart 重起memcached服务 
       -d stop|shutdown 关闭正在运行的memcached服务 
       -d install 安装memcached服务 
       -d uninstall 卸载memcached服务 
       -u 以的身份运行 (仅在以root运行的时候有效) 
       -m 最大内存使用,单位MB。默认64MB 
       -M 内存耗尽时返回错误,而不是删除项 
       -c 最大同时连接数,默认是1024 
       -f 块大小增长因子,默认是1.25 
       -n 最小分配空间,key+value+flags默认是48 
       -h 显示帮助

    连接到memcache   命令行:telnet 127.0.0.1 11211

    <?php

    Echo phpinfo();

    ?>

     

    实例:

    <?php

    $mem = new Memcache;

    $mem->connect("127.0.0.1", 12000);

    //Memcache::set方法有四个参数,第一个参数是key,第二个参数是value,第三个参数可选,表示是否压缩保存,第四个参数可选,用来设置一个过期自动销毁的时间。

    $mem->set('test','123',0,60);

    //Memcache::add方法的作用和Memcache::set方法类似,区别是如果 Memcache::add方法的返回值为false,表示这个key已经存在,而Memcache::set方法则会直接覆写。

    $mem->add('test','123',0,60);

    //Memcache::get方法的作用是获取一个key值,Memcache::get方法有一个参数,表示key。

    $mem->get('test');//输出为'123'

    //Memcache::replace 方法的作用是对一个已有的key进行覆写操作,Memcache::replace方法有四个参数,作用和Memcache::set方法的相同。

    $mem->replace('test','456',0,60);

    //Memcache::delete方法的作用是删除一个key值,Memcache::delete方法有两个参数,第一个参数表示key,第二个参数可选,表示删除延迟的时间。

    $mem->delete('test',60);

    ?>

    对于内存缓存,比较常用的有两种memcache和memcached扩展,而memcache和memcached的守护进程mencached同名,容易混淆

    a、Memcache是完全在PHP框架内开发的

    b、Memcached是使用libmemcached的

    c、Memcached会比memcache多几个方法,使用方式上都差不多

    d、memcache是原生实现的,支持OO和非OO两套接口并存,而memcached是使用libmemcached,只支持OO接口。更多关于他们的区别,请参考:http://hi.baidu.com/dong_love_yan/blog/item/afbe1e12d22e7512203f2e21.html

    memcached ,还有个值得陈赞的地方,就是flag不用再操作的时候设置了,可以通过一个统一的setOption()方法实现;

  • 相关阅读:
    Spring-扫描并创建bean
    MySQL源码解读之数据结构-lf_alloc-pin
    MySQL源码解读之数据结构-LF_DYNARRAY
    MySQL源码解读之数据结构-动态数组
    Zookeeper事件监听机制
    zookeeper javaAPI
    zookeeper权限控制 ACL
    zookeeper常用客户端命令
    zookeeper安装部署
    zookeeper简介
  • 原文地址:https://www.cnblogs.com/Steven-shi/p/5305052.html
Copyright © 2011-2022 走看看