Memcached是免费、开源(BSD license授权)、高性能分布式的对象内存缓存系统,当初是Danga Interactive为了LiveJournal所发展的,但目前被许多软件(如MediaWiki)所使用。Memcached被广泛用于动态数据的 缓存,可大大减低数据库负载与压力,提高数据库系统的性能与容量,从而极大地增加动态网页的效率与网速。

  Memcached缺乏认证以及安全管制,这代表应该将Memcached服务器放置在防火墙后。

  Memcached具有多种语言的客户端开发包,包括:Perl/PHP/JAVA/C/Python/Ruby/C#/MySQL/

  一、安装Memcached

  A、通过源码编译安装
  
  编译前,请先确认gcc、make、patch等编译工具是否已安装,并可正常使用。

  安装Libevent

  Libevent是一个异步事件处理软件函式库,以BSD许可证释出。Memcached依赖Libevent,因此必须先编译安装Libevent。

1 2 3 4 5 
wget http://www.monkey.org/~provos/libevent-2.0.13-stable.tar.gz tar xzvf  libevent-2.0.13-stable.tar.gz ./configure make make install

  安装Memcached

1 2 3 4 5 6 
wget http://memcached.googlecode.com/files/memcached-1.4.7.tar.gz tar xvzf memcached-1.4.7.tar.gz  cd memcached-1.4.7 ./configure --prefix=/usr/local/memcached/ make make install

  创建软链

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

  注:如果你不创建这个软链,启动memcached是可能会报./memcached: error while loading shared libraries: libevent-2.0.so.5: cannot open shared object file: No such file or directory这样的错误。这是因为memcached无法定位libevent库,libevent默认安装目录是/usr/local/lib /libevent-2.0.so.5,所以这里创建软链解决这个问题。

  另:我在编译时用–with-libevent参数指定了libevent的位置,启动依然有这个问题。

  启动memcache

1 
./memcached -d -m 64 -p 11211 -l 127.0.0.1 -u nobody -c 1024

  memcached常用启动参数描述:

1 2 3 4 5 6 7 8 
-d:启动一个守护进程, -m:分配给Memcache使用的内存数量,单位是MB,默认是64MB, -u:运行Memcache的用户 -l:监听的服务器IP地址 -p:设置Memcache监听的端口,默认是11211注:-p(p为小写) -c:设置最大并发连接数,默认是1024 -P:设置保存Memcache的pid文件注:-P(P为大写) -h 显示帮助

  B、通过APT包安装

1 
apt-get install memcached

  二、安装Memcache管理器

  A、环境准备

  安装Memcache客户端

  方法一、通过APT安装

1 
apt-get install php5-memcache

  方法二、通过pecl安装

1 
pecl install memcache

  重启Apache

1 
/etc/init.d/apache2 restart

  B、安装MemAdmin

  MemAdmin是一款可视化的Memcached管理与监控工具,使用PHP开发,体积小,操作简单。

  主要功能:服务器参数监控:STATS、SETTINGS、ITEMS、SLABS、SIZES实时刷新。服务器性能监控:GET、 DELETE、INCR、DECR、CAS等常用操作命中率实时监控。支持数据遍历,方便对存储内容进行监视。支持条件查询,筛选出满足条件的KEY或 VALUE。数组、JSON等序列化字符反序列显示。 兼容memcache协议的其他服务,如Tokyo Tyrant (遍历功能除外)。支持服务器连接池,多服务器管理切换方便简洁。

  安装

1 2 3 
wget http://www.junopen.com/memadmin/memadmin-1.0.5.tar.gz tar xvzf memadmin-1.0.5.tar.gz  cp -r  memadmin /var/www/

  配置访问用户

1 2 3 4 5 
vi memadmin/config.php   #根据自己情况修改用户名和密码 $config['user'] = "admin"; // your username $config['passwd'] = "admin"; // your password

  访问https://域名(或IP)/memadmin/index.php,输入用户名/密码访问即可。

  C、安装Memcachepphp

  Memcachepphp也是一个WEB管理工具,这个程序只有一个文件,部署相当简单。Memcachepphp功能有:管理多个memcache服务器、实时查看各个服务器的内存使用状况、实时查看缓存命中情况、直接浏览缓存内容,删除指定缓存项等。

  安装

1 2 3 
wget http://livebookmark.net/memcachephp/memcachephp.zip unzip  memcachephp.zip cp memcache.php /var/www/

  配置Memcachepphp

  根据自己的情况修改用户名密码和memcache服务器地址

1 2 3 4 5 6 7 8 9 
vi memcache.php   define(‘ADMIN_USERNAME’,'memcache’);     // Admin Username define(‘ADMIN_PASSWORD’,'password’);    // Admin Password define(‘DATE_FORMAT’,'Y/m/d H:i:s’); define(‘GRAPH_SIZE’,200); define(‘MAX_ITEM_DUMP’,50); $MEMCACHE_SERVERS[] = ‘localhost:11211′; // add more as an array //$MEMCACHE_SERVERS[] = ‘mymemcache-server2:11211′; // add more as an array

  访问https://域名(或IP)/memadmin/index.php,输入用户名/密码访问即可。