在linux上安装Memcached Server

项目里一些需要共享数据的地方,数据一直以一种设计极龌龊、线程极不安全、编码极不规范的方式在内存中组织。我承认是我设计出来这么恶心的东西,主要是处于最小编码量和编码时间考虑的,为了救火。但是随着需缓存的内容越来越多,并发要求越来越高的时候,先前的类似救火队员的代码有必要被推翻了,有必要上JMS和Memcached了。就先从Memcached下手,然后再搞JMS Cluster。

在网上搜了一些教程看了看,基本上只有两步:

1.编译安装libevent

2.编译安装Memcached

在我写这篇文章的时候,libevent已经有1.4.8稳定版,Memcached Server已经有1.3.0版本。本文就以这两个版本为例,我的gcc是gcc version 3.3.4 (Debian 1:3.3.4-7)。

首先安装libevent

[shell]
wget http://www.monkey.org/~provos/libevent-1.4.8-stable.tar.gz
tar zxvf libevent-1.4.8-stable.tar.gz
cd libevent-1.4.8-stable
[/shell]

指定安装在/usr下。一开始我没有指定安装目录导致libevent安装在/usr/local/lib,导致Memcached安装后找不到libevent库,即使手工指定路径也不行:

[shell]
./configure –prefix=/usr
make && make install
make clean
[/shell]

然后安装Memcached Server

[shell]
wget http://www.danga.com/memcached/dist/memcached-1.3.0.tar.gz
tar zxvf memcached-1.3.0.tar.gz
cd memcached-1.3.0/
./configure –with-libevent=/usr 这里需要指定libevent的路径
make && make install
make clean
[/shell]

一眨眼功夫就都编译安装完成了。

测试下Memcached安装成功没:

[shell]
/usr/local/bin/memcached -d -m 10 -u root -l 192.168.0.200 -p 12000 -c 256 -P /tmp/memcached.pid
[/shell]

没错误提示的话,证明安装成功并且启动了Memcached服务了。

Memcached基本说明:

启动参数:

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

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

-u是运行Memcache的用户

-l是监听的服务器IP地址

-p是设置Memcache监听的端口

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

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

结束Memcached进程使用如下语句:

[shell]
kill cat /tmp/memcached.pid
[/shell]

2011.03.25 补充:
在一台新机器上装memcached的时候,图鲜下载了libevent-2.0.x,结果memcached不认,还是换回libevent-1.4.x,所以版本依赖性一定要搞清楚,不能光追求最新最高版本。

加载评论框需要翻墙