Linux下安装Memcached

由于memcached安装时,需要使用libevent类库,所以先安装libevent

1.安装之前,需要先确认系统中是否有libevent,因为memcached依赖这个包。

安装环境:Oracle Linux
5.6
 
(1).尝试安装memcached失败,因缺少EPEL扩展包。
 [root@njdyw ~]# yum install memcached
 Loaded plugins: rhnplugin, security
 This system is not registered with ULN.
 ULN support will be disabled.
 Setting up Install Process
 No package memcached available.
 Nothing to do
 
(2).repolist检查
 [root@njdyw ~]# yum repolist
 Loaded plugins: rhnplugin, security
 This system is not registered with ULN.
 ULN support will be disabled.
 repolist: 0
 
(3).安装EPEL扩展包(Extra Packages for Enterprise Linux)
 [root@njdyw ~]# rpm -ivh

 Retrieving

 warning: /var/tmp/rpm-xfer.Bw4fvR: Header V3 DSA signature: NOKEY, key
ID 217521f6
 Preparing…               
###########################################
[100%]
    1:epel-release         
###########################################
[100%]
   
 (4).repolist再次检查
 [root@njdyw ~]# yum repolist
 Loaded plugins: rhnplugin, security
 This system is not registered with ULN.
 ULN support will be disabled.
 epel                                                                   
                                    | 3.7 kB    00:00   
 epel/primary_db                                                       
                                      | 3.8 MB    00:16   
 repo id                                repo name                       
                                              status
 epel                                  Extra Packages for Enterprise
Linux 5 – x86_64                                enabled: 7,228
 repolist: 7,228
 
(5).再次安装memcached成功
 [root@njdyw ~]# yum install memcached
 Loaded plugins: rhnplugin, security
 This system is not registered with ULN.
 ULN support will be disabled.
 Setting up Install Process
 Resolving Dependencies
 –> Running transaction check
 —> Package memcached.x86_64 0:1.4.5-1.el5 set to be updated
 –> Finished Dependency Resolution
 Dependencies Resolved
 ====================================================================================================================================
 Package                        Arch                        Version     
                        Repository                  Size
 ====================================================================================================================================
 Installing:
 memcached                      x86_64                     
1.4.5-1.el5                          epel                        72 k
 Transaction Summary
 ====================================================================================================================================
 Install      1 Package(s)
 Upgrade      0 Package(s)
 Total download size: 72 k
 Is this ok [y/N]: y
 Downloading Packages:
 memcached-1.4.5-1.el5.x86_64.rpm                                     
                                      |  72 kB    00:01   
 warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID
217521f6
 epel/gpgkey                                                           
                                      | 1.7 kB    00:00   
 Importing GPG key 0x217521F6 “Fedora EPEL
<epel@fedoraproject.org>” from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL
 Is this ok [y/N]: y
 Running rpm_check_debug
 Running Transaction Test
 Finished Transaction Test
 Transaction Test Succeeded
 Running Transaction
  Installing    : memcached                                             
                                                      1/1
 Installed:
  memcached.x86_64 0:1.4.5-1.el5                                       
                                                           
 Complete![](https://www.linuxidc.com/linuxfile/logo.gif)

Memcache是一个开源项目,它是一个高性能的分布式的内存对象缓存系统,通过在内存里维护一个统一的巨大的Hash表,能够用来存储各种格式的数据。

1.安装之前,需要先确认系统中是否有libevent,因为memcached依赖这个包。

libevent下载网址:

查看:

1: 还是下载

Memcache是用C编写的,要用到C的libevent来处理接口

点击下载memcached-1.4.0.tar.gz

下载libevent-2.0.13-stable.tar.gz

下载memcache-3.0.6.tgz

我下载到了/root/Downloads

查看:

本手册中下载的是 libevent-1.4.8-stable.tar.gz版本安装步骤如下:

命令: rpm -qa|grep libevent

2:解压编译

a:先安装libevent

  1. #cd /Downloads  
  2. #tar zvxf libevent-2.0.13-stable.tar.gz  
  3. #cd libevent-2.0.13-stable  
  4. #./configure –prefix=/usr  
  5. #make  
  6. #make install  

查看下安装是否成功

  1. # ls -al /usr/lib | grep libevent 

  2. lrwxrwxrwx   1 root root           21 2011-03-30 11:03 libevent-1.4.so.2 -> libevent-1.4.so.2.1.3  

  3. -rw-r–r–   1 root root        91768 2009-12-06 05:52 libevent-1.4.so.2.1.3  
  4. lrwxrwxrwx   1 root root           21 2011-09-16 01:41 libevent-2.0.so.5 -> libevent-2.0.so.5.1.2  
  5. -rwxr-xr-x   1 root root       817306 2011-09-16 01:41 libevent-2.0.so.5.1.2  
  6. -rw-r–r–   1 root root      1048354 2011-09-16 01:41 libevent.a  
  7. lrwxrwxrwx   1 root root           26 2011-09-16 01:41 libevent_core-2.0.so.5 -> libevent_core-2.0.so.5.1.2  
  8. -rwxr-xr-x   1 root root       499865 2011-09-16 01:41 libevent_core-2.0.so.5.1.2  
  9. -rw-r–r–   1 root root       657028 2011-09-16 01:41 libevent_core.a  
  10. -rwxr-xr-x   1 root root          968 2011-09-16 01:41 libevent_core.la  
  11. lrwxrwxrwx   1 root root           26 2011-09-16 01:41 libevent_core.so -> libevent_core-2.0.so.5.1.2  
  12. lrwxrwxrwx   1 root root           27 2011-09-16 01:41 libevent_extra-2.0.so.5 -> libevent_extra-2.0.so.5.1.2  
  13. -rwxr-xr-x   1 root root       335387 2011-09-16 01:41 libevent_extra-2.0.so.5.1.2  
  14. -rw-r–r–   1 root root       391398 2011-09-16 01:41 libevent_extra.a  
  15. -rwxr-xr-x   1 root root          975 2011-09-16 01:41 libevent_extra.la  
  16. lrwxrwxrwx   1 root root           27 2011-09-16 01:41 libevent_extra.so -> libevent_extra-2.0.so.5.1.2  
  17. -rwxr-xr-x   1 root root          933 2011-09-16 01:41 libevent.la  
  18. lrwxrwxrwx   1 root root           29 2011-09-16 01:41 libevent_openssl-2.0.so.5 -> libevent_openssl-2.0.so.5.1.2  
  19. -rwxr-xr-x   1 root root        80238 2011-09-16 01:41 libevent_openssl-2.0.so.5.1.2  
  20. -rw-r–r–   1 root root        86344 2011-09-16 01:41 libevent_openssl.a  
  21. -rwxr-xr-x   1 root root         1004 2011-09-16 01:41 libevent_openssl.la  
  22. lrwxrwxrwx   1 root root           29 2011-09-16 01:41 libevent_openssl.so -> libevent_openssl-2.0.so.5.1.2  
  23. lrwxrwxrwx   1 root root           30 2011-09-16 01:41 libevent_pthreads-2.0.so.5 -> libevent_pthreads-2.0.so.5.1.2  
  24. -rwxr-xr-x   1 root root        15733 2011-09-16 01:41 libevent_pthreads-2.0.so.5.1.2  
  25. -rw-r–r–   1 root root        12998 2011-09-16 01:41 libevent_pthreads.a  
  26. -rwxr-xr-x   1 root root          996 2011-09-16 01:41 libevent_pthreads.la  
  27. lrwxrwxrwx   1 root root           30 2011-09-16 01:41 libevent_pthreads.so -> libevent_pthreads-2.0.so.5.1.2  
  28. lrwxrwxrwx   1 root root           21 2011-09-16 01:41 libevent.so -> libevent-2.0.so.5.1.2  

b. 安装memcached

  1. #cd ..  
  2. #tar zxvf memcached-1.4.0.tar.gz  
  3. #cd memcached-1.4.0  
  4. # ./configure –with-libevent=/usr  
  5. # make  
  6. # make install  

c. 安装memcache

  1. #cd ..  
  2. #tar vxzf memcache-3.0.6.tgz  
  3. #cd memcache-3.0.6  
  4. #/usr/local/php/bin/phpize  
  5. #./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir  
  6. #make  
  7. #make install  
  8. #gvim /etc/php5/apache2/php.ini  

修改php.ini中的extension_dir = “./”

  1. extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/”  

添加

  1. extension=memcache.so 

命令: rpm -qa|grep libevent

  1. 解压缩

显示的包:libevent-1.4.13-4.el6.x86_64

3: 启动和关闭

#/usr/local/bin/memcached -d -m 128 -u root -l 127.0.0.1 -p 11211 -c
256 -P /var/temp/memcached.pid

#kill `cat /var/temp/memcached.pid` 或者#killall memcached

重启apache

sudo /etc/init.d/apche2 restart

显示的包:libevent-1.4.13-4.el6.x86_64

tar xzfv libevent-1.4.8-stable.tar.gz

此时,系统已经安装过了,需要卸载重新下载安装。

4:测试

< ?php
$mem = new Memcache;
$mem->connect(“127.0.0.1″, 11211);
$mem->set(‘key’, ‘This is a test!’, 0, 60);
$val = $mem->get(‘key’);
echo $val;
?>

此时,系统已经安装过了,需要卸载重新下载安装。

  1. 进入到 libevent-1.4.8-stable目录

卸载:rpm -e libevent-1.4.13-4.el6.x86_64

5: Ubuntu/debian 。

直接sudo

sudo apt-get install memcached

启动

memcached -d -m 128 -p 11211 -u root -l 127.0.0.1

太轻松了。。。

图片 1

卸载:rpm -e libevent-1.4.13-4.el6.x86_64

cd libevent-1.4.8-stable

2.下载libevent,并安装

2.下载libevent,并安装

  1. 编译,安装

下载地址:

下载地址:

./configure

解压:

解压:

make

tar -zxvf libevent-2.0.21-stable.tar.gz

tar -zxvf libevent-2.0.21-stable.tar.gz

make install

安装:

安装:

注:默认安装到/usr/local/lib/ 目录

./configure –prefix=/usr/local/libevent 
(指定安装到/usr/local/libevent目录下)

./configure –prefix=/usr/local/libevent 
(指定安装到/usr/local/libevent目录下)

接下来,安装memcached

编译:make

编译:make

memcached下载网址:

make install

make install

本手册中下载的是 memcached-1.2.6.tar.gz版本

安装完成!

安装完成!

安装步骤如下:

3.下载memcached,并解压

3.下载memcached,并解压

  1. 解压缩

命令: tar -zxvf memcached-1.4.17.tar.gz

命令: tar -zxvf memcached-1.4.17.tar.gz

tar xzfv memcached-1.2.6.tar.gz

安装:

安装:

  1. 进入到 memcached-1.2.6目录

./configure –prefix=/usr/local/memcached-1.4.17

./configure –prefix=/usr/local/memcached-1.4.17

cd memcached-1.2.6

若安装过程中提示找不到libevent路径时,使用–with-libevent=libevent安装的目录

若安装过程中提示找不到libevent路径时,使用–with-libevent=libevent安装的目录

  1. 编译,安装

./configure –prefix=/usr/local/memcached-1.4.17
–with-libevent=/usr/local/libevent/

./configure –prefix=/usr/local/memcached-1.4.17
–with-libevent=/usr/local/libevent/

./configure –prefix=/local/memcached

  编译:make

  编译:make

make

make install

make install

make install

安装完成!

安装完成!

安装完成后,会在 /local/memcached 出现 bin和share目录

4.启动

4.启动

进行 bin目录,启动 memcache

/usr/local/memcached-1.4.17/bin/memcached -d -m 128 -u root -p 11211 -c
1024 -P /tmp/memcached.pid

/usr/local/memcached-1.4.17/bin/memcached -d -m 128 -u root -p 11211 -c
1024 -P /tmp/memcached.pid

方法如下:

启动参数说明:

启动参数说明:

./memcached -d -u nobody -m 512 127.0.0.1 -p 11211

-d 选项是启动一个守护进程。

-d 选项是启动一个守护进程。

此时,会报一个异常

-u root 表示启动memcached的用户为root。

-u root 表示启动memcached的用户为root。

error while loading shared libraries: libevent-1.4.so.2: cannot open
shared object file: No such file or directory

-m 是分配给Memcache使用的内存数量,单位是MB,默认64MB。

-m 是分配给Memcache使用的内存数量,单位是MB,默认64MB。

原因是找不到libevent-1.4.so.2类库,解决办法如下:

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

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

使用LD_DEBUG=help ./memcached -v来确定 加载的类库路径,方法如下:

-u 是运行Memcache的用户,如果当前为root 的话,需要使用此参数指定用户。

-u 是运行Memcache的用户,如果当前为root 的话,需要使用此参数指定用户。

LD_DEBUG=libs ./memcached -v 2>&1 > /dev/null | less

-p 是设置Memcache的TCP监听的端口,最好是1024以上的端口。

-p 是设置Memcache的TCP监听的端口,最好是1024以上的端口。

则系统会显示:

-c 选项是最大运行的并发连接数,默认是1024。

-c 选项是最大运行的并发连接数,默认是1024。

linux:/local/memcached/bin # LD_DEBUG = libs ./memcached -v  2 >&
1  > /dev/null | less

-P 是设置保存Memcache的pid文件。

-P 是设置保存Memcache的pid文件。

20421 :     find library = libevent- 1.4 .so .2 ;  searching

5.停止

5.停止

20421 :      search cache = /etc/ld.so.cache

先查看进程的id

先查看进程的id

20421 :      search path =
/lib/tls/i686/sse2:/lib/tls/i686:/lib/tls/sse2:/lib/tls:/lib/i686/sse2:/lib/i686:/lib/sse2:/lib:/usr/lib/tls/i686

ps -ef|grep memcached

ps -ef|grep memcached

/sse2:/usr/lib/tls/i686:/usr/lib/tls/sse2:/usr/lib/tls:/usr/lib/i686/sse2:/usr/lib/i686:/usr/lib/sse2:/usr/lib         
(system search path)

root    15144    1  0 08:43 ?        00:00:00
/usr/local/memcached-1.4.17/bin/memcached -d -m 128 -u root -p 11211 -c
1024 -P /tmp/memcached.pid

root    15144    1  0 08:43 ?        00:00:00
/usr/local/memcached-1.4.17/bin/memcached -d -m 128 -u root -p 11211 -c
1024 -P /tmp/memcached.pid

20421 :       trying file = /lib/tls/i686/sse2/libevent- 1.4 .so .2

15144为pid

15144为pid

20421 :       trying file = /lib/tls/i686/libevent- 1.4 .so .2

停止命令为:kill -9 15144

停止命令为:kill -9 15144

20421 :       trying file = /lib/tls/sse2/libevent- 1.4 .so .2

Memcached 的详细介绍:请点这里
Memcached 的下载地址:请点这里

Memcached
的详细介绍
:请点这里
Memcached
的下载地址
:请点这里

20421 :       trying file = /lib/tls/libevent- 1.4 .so .2

参考阅读:

参考阅读:

20421 :       trying file = /lib/i686/sse2/libevent- 1.4 .so .2

Memcached 安装及启动脚本

Memcached 安装及启动脚本
http://www.linuxidc.com/Linux/2013-07/87641.htm

20421 :       trying file = /lib/i686/libevent- 1.4 .so .2

PHP中使用Memcached的性能问题

PHP中使用Memcached的性能问题
http://www.linuxidc.com/Linux/2013-06/85883.htm

20421 :       trying file = /lib/sse2/libevent- 1.4 .so .2

Ubuntu下安装Memcached及命令解释

Ubuntu下安装Memcached及命令解释
http://www.linuxidc.com/Linux/2013-06/85832.htm

20421 :       trying file = /lib/libevent- 1.4 .so .2

Memcached的安装和应用

Memcached的安装和应用
http://www.linuxidc.com/Linux/2013-08/89165.htm

20421 :       trying file = /usr/lib/tls/i686/sse2/libevent- 1.4 .so .2

使用Nginx+Memcached的小图片存储方案

使用Nginx+Memcached的小图片存储方案
http://www.linuxidc.com/Linux/2013-11/92390.htm

20421 :       trying file = /usr/lib/tls/i686/libevent- 1.4 .so .2

Memcached使用入门

Memcached使用入门
http://www.linuxidc.com/Linux/2011-12/49516p2.htm

20421 :       trying file = /usr/lib/tls/sse2/libevent- 1.4 .so .2

查看: 命令: rpm -qa|grep libevent
显示的包:libevent-1.4.13-4.el6.x86_64 此…

图片 2

20421 :       trying file = /usr/lib/tls/libevent- 1.4 .so .2

20421 :       trying file = /usr/lib/i686/sse2/libevent- 1.4 .so .2

20421 :       trying file = /usr/lib/i686/libevent- 1.4 .so .2

20421 :       trying file = /usr/lib/sse2/libevent- 1.4 .so .2

20421 :       trying file = /usr/lib/libevent- 1.4 .so .2

20421 :

./memcached: error while loading shared libraries: libevent- 1.4 .so .2
: cannot open shared object file: No such file or directory

我们看到,memcached会到很多地方去找,所以根据其它求,我们只需建一个软链接,指定到我们安装的类库上即可

方法如下:

ln -s /usr/local/lib/libevent-1.4.so.2 /lib/libevent-1.4.so. 2

现在可以正常启动memcached了

./memcached -d -u nobody -m 512 127.0.0.1 -p 11211

到这里,看到memcached已经启动,说明安装成功。

如果要结束Memcache进程,执行:

# kill `cat /tmp/memcached.pid`

也可以启动多个守护进程,不过端口不能重复。

memcache启动参数说明:

-d选项是启动一个守护进程,

-m是分配给Memcache使用的内存数量,单位是MB,我这里是10MB,

-u是运行Memcache的用户,我这里是root,

-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.0.200,

-p是设置Memcache监听的端口,我这里设置了12000,最好是1024以上的端口,

-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定,

-P是设置保存Memcache的pid文件,我这里是保存在 /tmp/memcached.pid
 

libevent下载网址:
本手册中下载的是 libevent-1.4.8…

相关文章