彩运网网址-彩运网网上登录

Memcache的部署和使用

一、简介

Memcached是国外社区网站 LiveJournal 的开发团队开发的高性能的分布式内存缓存服务器。一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、提高可扩展性。

Memcache的部署和使用

官方网站:http://www.danga.com/memcached/

一、memcache简介

二、原理

Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。

libevent是一套跨平台的事件处理接口的封装,能够兼容包括这些操作系统:Windows/Linux/BSD/Solaris 等操作系统的的事件处理。Memcached 使用libevent来进行网络并发连接的处理,能够保持在很大并发情况下,仍旧能够保持快速的响应能力。

Memcache官方网站:http://memcached.org/

1、数据存储方式:Slab Allocation

 

Slab Allocator的基本原理是按照预先规定的大小,将分配的内存分割成特定长度的块,以完全解决内存碎片问题。

二、memcache的安装

Slab Allocation的原理相当简单。将分配的内存分割成各种尺寸的块(chunk),并把尺寸相同的块分成组(chunk的集合)

1、  下载源文件(目前最新稳定版本是memcached-1.4.5.tar.gz)

缺点:由于分配的是特定长度的内存,因此无法有效利用分配的内存。

wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz

2、数据过期方式:Lazy Expiration

由于Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,

memcached内部不会监视记录是否过期,而是在get时查看记录的时间戳,检查记录是否过期。

Libevent的官网为http://www.monkey.org/~provos/libevent/,最新稳定版本为:1.4.14b

LRU——Least Recently Used,当memcached的内存空间不足时(无法从slab class 获取到新的空间时),就从最近未被使用的记录中搜索,并将其空间分配给新的记录。

wget http://www.monkey.org/~provos/libevent-1.4.14b-stable.tar.gz

三、安装

2、  安装memcache

Memcache包括服务器和客户端的安装。可以在各种linux平台上安装,也可以在windows上安装。

1)、安装libevent

服务器端

# tar xzvf libevent-1.4.14b-stable.tar.gz

    libevent
       官网:http://monkey.org/~provos/libevent/
       下载:http://monkey.org/~provos/libevent-1.4.9-stable.tar.gz
    Memcached
       官网:http://www.danga.com/memcached
       下载:http://www.danga.com/memcached/dist/

# cd libevent-1.4.14b-stable

libevent安装

# ./configure --prefix=/usr

>tar -zxvf libevent-1.4.9-stable.tar.gz
>cd libevent-1.4.9-stable
>./configure      //默认装到/usr/lib/下
>make
>make install

# make && make install

但是默认情况下,libevent是安装到了/usr/local/lib目录下,而memcached找ibevent-2.0.so.5模块的路径

# cd ..

却是/usr/lib目录,可想而知,肯定找不到的啊,因此需要你软链接过去,或者你指定安装目录也行。

# ls -al /usr/lib | grep libevent (查看是否安装成功)

ln -s  /usr/local/lib/libevent-2.0.so.5    /usr/lib/libevent-2.0.so.5

2)、安装memcache

好了,到此为止,才算只真正的安装好了libevent.

# tar xzvf memcached-1.4.5.tar.gz

     Memcached安装

# cd memcached-1.4.5

>tar -zxvf memcached-1.4.1.tar.gz
>cd memcached-1.4.1
>./configure --prefix=/usr/local/memcached
>make
>make install
    Memcached启动

# ./configure --with-libevent=/usr

>./memcached -d -m 10 -u root -l 10.20.20.194 -p 11210 -c 256 -P /tmp/memcached.pid

# make && make install

参数解释:
   -d 以守护程序(daemon)方式运行 memcached。

# ls -al /usr/local/bin/mem*   (查看是否生成memcached可执行程序文件)

   -u 指定用户,如果当前为 root 的话,需要使用此参数指定用户。
   -m 设置 memcached 可以使用的内存大小,单位为Mb,缺省是 64 MB;
   -l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;
   -p 设置监听的端口,默认为 11211,所以也可以不设置此参数;(此处不设置,测试后发现无法连接)

#备注:如果是64位的系统可能会报错,因为默认的库文件只会安装到/usr/lib下面

   -c 设置最大运行的并发连接数,默认是1024

3、  启动memcache

   -P 设置保存Memcache的pid文件

# 通过/usr/local/bin/memcached –h查看命令选项帮助

 

[root@Centos2 memcached-1.4.5]# /usr/local/bin/memcached -h

   Memcached停止

memcached 1.4.5

>kill `cat /tmp/memcached.pid`

-p <num>      TCP port number to listen on (default: 11211)

备注:

-U <num>      UDP port number to listen on (default: 11211, 0 is off)

   cat /tmp/memcached.pid——查看memcached的进程号

-s <file>     UNIX socket path to listen on (disables network support)

 

-a <mask>     access mask for UNIX socket, in octal (default: 0700)

   查看Memcached帮助信息

-l <ip_addr>  interface to listen on (default: INADDR_ANY, all addresses)

>./memcached -h

-d            run as a daemon

 

-r            maximize core file limit

   检查Memcached是否运行正常

-u <username> assume identity of <username> (only when run as root)

>ps auxxww | grep memcached

-m <num>      max memory to use for items in megabytes (default: 64 MB)

 

-M            return error on memory exhausted (rather than removing items)

  客户端

-c <num>      max simultaneous connections (default: 1024)

   a、linux安装

#启动命令如下

         Memcached有两种安装方式:一种是直接安装memcache;一种是安装memcached。

# /usr/local/bin/memcached -d -m 10  -u root -l 172.28.5.2 -p 12000 -c 1024 –P /tmp/memcached.pid

      (1)、安装memcache

####相关选项说明

       PHP Memcache扩展

-d   表示启动一个守护进程

          官网:http://pecl.php.net/package/memcache
          下载:http://pecl.php.net/get/memcache-3.0.4.tgz

-m 是分配给memcached使用的内存

       安装

-u   运行memcached的用户

>tar -zxvf memcache-3.0.4.tgz
>cd memcache-3.0.4
>/usr/local/php/bin/phpize
>./configure --with-php-config=/usr/local/php/bin/php-config
>make
>make install

-l     是memcached监听的ip

        配置

-p    是memcached监听的端口

           在php.ini中新增配置内容:
           extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"
           extension = memcache.so

-c    memcache运行的最大并发连接数

 

-P    是设置memcache的pid文件

      (2)、安装memcached

 

            Memcached客户端是基于libmemcached的,所以需先安装libmemcached。

三、Php的memcache扩展的安装

            libmemcached

1、  windows平台memcache扩展的安装

               官网:http://download.tangent.org

下载相应版本的php_memcache.dll文件,然后将该文件放到D:AppServphp5ext目录下(路径根据php安装的位置不同请自行设置),然后更改相应的php.ini的设置,创建<?php phpinfo();?>的php文件,访问这个文件看memcache模块是否起作用。

               下载:http://download.tangent.org/libmemcached-0.33.tar.gz

2、  linux平台memcache扩展的安装

            安装

wget http://blog.s135.com/soft/linux/nginx_php/memcache/memcache-2.2.5.tgz

>tar -zxvf libmemcached-0.33.tar.gz
>cd libmemcached-0.33
>./configure --prefix=/usr/local/libmemcached/ --with-libmemcached-dir=/usr/local/libmemcached/           --此处--with-libmemcached-dir需验证

tar zxvf memcache-2.2.5.tgz
cd memcache-2.2.5/
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
cd ../

>make
>make install

修改php.ini文件

 

查找/usr/local/php/etc/php.ini中的 extension_dir = "./"修改为extension_dir = "/usr/local/php/lib/php/extensions/no-debug-non-zts-20060613/"

            PHP Memcached扩展

并在此行后增加一行,然后保存:

               官网:http://pecl.php.net/package/memcached
               下载:http://pecl.php.net/get/memcached-1.0.0.tgz

extension = "memcache.so"

       安装

创建php文件aaa.php,内容如下:

 

<?php

>tar -zxvf memcached-1.0.0.tgz
>cd memcached-1.0.0
>./configure --with-php-config=/usr/local/php/bin/php-config --with-libmemcached-dir=/usr/local/libmemcached/
>make
>make install
       配置

Phpinfo();

本文由彩运网网址发布于网络安全,转载请注明出处:Memcache的部署和使用

相关阅读