zoukankan      html  css  js  c++  java
  • PHP与memcache和memcached以及安装使用

    老规则,在作者寒冰讲之前我们要来明确memcache与memcached这两个东西到底是什么?

    说法一:

    两个不同版本的php的memcached的客户端 new memcache是pecl扩展库版本 new memcached是libmemcached版本 功能差不多

    说法二:

    Memcache是什么? Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。 

    它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这些HashTable。 Memcached是简单而强大的。它简单的设计促进迅速部署,易于发展所面临的问题,解决了很多大型数据缓存。它的API可供最流行的语言。

    Memcache的知名用户有:LiveJournal、Wikipedia、Flickr、Bebo、Twitter、Typepad、Yellowbot、Youtube 等。

    Memcache官方网站:http://memcached.org/ Memcached又是什么?

    Memcache是该系统的项目名称,Memcached是该系统的主程序文件,以守护程序方式运行于一个或多个服务器中,随时接受客户端的连接操作,使用共享内存存取数据。 那PHP中的Memcache是什么?

    php中的所讲的memcache是用于连接Memecached的客户端组件。 简单的说一句话:Memcached 是一个服务(运行在服务器上的程序,监听某个端口),Memcache 是 一套访问Memcached的api。 两者缺一不可,不然无法正常运行。

    作为寒冰我个人的见解,我认为第二种说法比较靠谱:memcache看作是访问memcached的扩展程序。memcached负责管理缓存在内存里面的数据。而memcache负责去操作里面的数据。这也是目前的做法。 其实,在PHP库里面有提到这两个扩展。而且,分别有一套API。

    不管怎样,我们要使用memcache这个内存缓存,必须安装将memcache安装到php里面,再在linux系统中安装memecached。这样,PHP才能通过memecache去内存存取数据。 这个memcached也有另外一个扩展,使用方式与memcache一样的。我今天要讲的是memcache与memcached之间的关系。 关于memcache的安装,已经在PHP环境安装一文中详细描述。现在我们来讲memcached的安装。

    1、下载memcached.

    cd /usr/local/src
    wget http://memcached.googlecode.com/files/memcached-1.4.15.tar.gz
    

    2、安装memcached.

    1)由于memcached依赖libevent这个扩展,所以,要先安装。

    wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz
    tar zxvf libevent-2.0.21-stable.tar.gz
    cd libevent-2.0.21-stable
    ./configure --prefix=/usr/local/libevent
    make && make install
    

    我把这个依赖的扩展安装在了:/usr/local/libevent

    2)安装memcached.

    tar zxvf memcached-1.4.15.tar.gz
    cd memcached-1.4.15
    ./configure --prefix=/usr/local/memcached --with-libevent=/usr/local/libevent
    make
    make install
    

    我在这里安装的时候使用了–with-libevent的参数,告诉memcached扩展libevent的所在安装目录。

    3)启动memcached。

    /usr/local/memcached/bin/memcached -d -m 128 -p 11211 -u root
    

    4)查看是否安装启动成功memcached.

    ps aux | grep memcached
    

    如果显示如下信息,说明已经安装成功:

    root     10034  0.0  0.2 327916  2268 ?        Ssl  10:23   0:00 /usr/local/memcached/bin/memcached -d -m 128 -p 11211 -u root
    root     10054  0.0  0.0 103240   888 pts/0    S+   10:26   0:00 grep memcached
    

    3、使用memcache缓存数据到内存。

    $memcache_obj = memcache_connect("localhost", 11211);
    /* 面向过程编程 API */
    memcache_add($memcache_obj, 'var_key', 'test variable', false, 30);
    /* 面向对象编程 API */
    $memcache_obj->add('var_key', 'test variable', false, 30);
    

    如果运行运行以上脚本没有报错,说明已经OK了。 现在,我们已经将数据放入内存中了。我们现在要来把数据读取出来。在以上的脚本后面增加如下代码:

    $var = $memcache_obj->get('var_key');
    var_dump( $var );
    

    现在你是否已经看到数据的输出。恭喜你。 关于更多的操作,请查看PHP手册的memcache部分。

  • 相关阅读:
    Python全栈day10(基础知识练习题)
    Python全栈day10(基本数据类型及其常用方法)
    Python全栈day10(运算符)
    CentOS 添加常用 yum 源(转)
    CentOS yum源设定使用方法的整理(转)
    centos6.6安装php5.3.3(2015/3/4)
    centos6.6升级安装MySQL5.5(2015/3/4)
    vi/vim显示中文字符并且去掉^M的方法
    ecmall2.3.0 前后台样式等无效,导致前台页面显示不正常问题解决
    ecmall页面空白解决方案(转)
  • 原文地址:https://www.cnblogs.com/zsmynl/p/3573287.html
Copyright © 2011-2022 走看看