更新日期:2010-05-07
1、启用虚拟机。
路径:G:/Virtual Machines/VMware.Memcached
配置SecureCRT:CJB.Memcached
192.168.160.129
2、下载程序。
#cd /home/apps
#wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
#wget http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz
3、编译器检查。
#gcc -v
4、安装。
1)、安装libevent。
#tar -zxvf libevent-1.4.13-stable.tar.gz
//先解压缩
#cd libevent-1.4.13-stable
//切换到libevent的目录中
#./configure --prefix=/usr/
//指定安装路径到/usr/目录下
#make
//编译
#make install
//安装
#ls /usr/lib |grep libevent
//验证安装
2)、安装memcached
#cd /home/apps
#tar -zxvf memcached-1.4.0.tar.gz
#cd memcached-1.4.0
#./configure --prefix=/usr/local/memcached --with-libevent=/usr/
#make
#make install
#ls -al /usr/local/memcached/bin
//验证安装
5、启动memcache
1)、关闭防火墙。
#永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
#即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
#修改/etc/sysconfig/iptables文件,添加
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT
2)、启动Memcache的服务器端。
# /usr/local/memcached/bin/memcached -d -m 100 -u root -l 192.168.160.129 -p 11211 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.36.200,
-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,我们这里统一使用11211
-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定。
-P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid,
3)、结束Memcache进程。
# kill cat /tmp/memcached.pid
6、 监测是否启动成功方式
cmd
c:/>telnet 192.168.160.129 11211
直接敲击stats命令
7、 设定memcache的telnet访问限制
请限定telnet的访问,使之只能在中转机上访问
8、 memcache的常见概念
memcached会预先分配内存,memcached分配内存方式称之为allocator,首先,这里有3个概念:
1 slab
2 page
3 chunk
解释一下,一般来说一个memcahced进程会预先将自己划分为若干个slab,每个slab下又有若干个page,
每个page下又有多个chunk,如果我们把这3个咚咚看作是object得话,这是两个一对多得关系。
再一般来说,slab得数量是有限得,几个,十几个,或者几十个,这个跟进程配置得内存有关。
而每个slab下得page默认情况是1m,也就是说如果一个slab占用100m得内存得话,
那么默认情况下这个slab所拥有得page得个数就是100,而chunk就是我们得数据存放得最终地方
9、 Memcache的常用命令
1)、查询状态命令:stats:
Name Type Meaning
----------------------------------
pid
32u Process id of this server process
uptime
32u Number of seconds this server has been running
time
32u current UNIX time according to the server
version
string Version string of this server
pointer_size
32 Default size of pointers on the host OS (generally 32 or 64)
rusage_user
32u:32u Accumulated user time for this process (seconds:microseconds)
rusage_system
32u:32u Accumulated system time for this process (seconds:microseconds)
curr_items
32u Current number of items stored by the server
total_items
32u Total number of items stored by this server ever since it started
bytes
64u Current number of bytes used by this server to store items
curr_connections 32u Number of open connections
total_connections 32u Total number of connections opened since the server started running
connection_structures 32u Number of connection structures allocated by the server
cmd_get
64u Cumulative number of retrieval requests
cmd_set
64u Cumulative number of storage requests
get_hits
64u Number of keys that have been requested and found present
get_misses
64u Number of items that have been requested and not found
evictions
64u Number of valid items removed from cache to free memory for new items
bytes_read
64u Total number of bytes read by this server from network
bytes_written
64u Total number of bytes sent by this server to network
limit_maxbytes
32u Number of bytes this server is allowed to use for storage.
threads
32u Number of worker threads requested. (see doc/threads.txt)
2)、查询版本号 version
3)、退出命令 quit
4)、显示各个slab的信息,包括chunk的大小、数目、使用情况等:stats slabs5)、
显示各个slab中item的数目和最老item的年龄(最后一次访问距离现在的秒数):stats items6)、
显示内存分配:stats malloc
5)、清空缓存数据(其实是将所有缓存数据标记为过期):flush_all
参考资料:
#memcached
http://memcached.org/
http://code.jellycan.com/memcached/
#Memcached安装和基本使用(windows)
http://www.cnblogs.com/netflu/archive/2010/03/12/1684305.html
#memcache简要安装步骤
http://kb.cnblogs.com/a/1575049/
#Memcached linux安装说明
http://kb.cnblogs.com/a/1501326/
1、启用虚拟机。
路径:G:/Virtual Machines/VMware.Memcached
配置SecureCRT:CJB.Memcached 192.168.160.129
2、下载程序。
#cd /home/apps#wget http://www.monkey.org/~provos/libevent-1.4.13-stable.tar.gz
#wget http://www.danga.com/memcached/dist/memcached-1.4.0.tar.gz
3、编译器检查。#gcc -v
4、安装。
1)、安装libevent。
#tar -zxvf libevent-1.4.13-stable.tar.gz //先解压缩
#cd libevent-1.4.13-stable //切换到libevent的目录中
#./configure --prefix=/usr/ //指定安装路径到/usr/目录下
#make //编译
#make install //安装
#ls /usr/lib |grep libevent //验证安装
2)、安装memcached
#cd /home/apps
#tar -zxvf memcached-1.4.0.tar.gz
#cd memcached-1.4.0
#./configure --prefix=/usr/local/memcached --with-libevent=/usr/
#make #make install
#ls -al /usr/local/memcached/bin //验证安装
5、启动memcache1)、关闭防火墙。
#永久性生效,重启后不会复原
开启: chkconfig iptables on
关闭: chkconfig iptables off
#即时生效,重启后复原
开启: service iptables start
关闭: service iptables stop
#修改/etc/sysconfig/iptables文件,
添加-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 11211 -j ACCEPT
2)、启动Memcache的服务器端。
# /usr/local/memcached/bin/memcached -d -m 100 -u root -l 192.168.160.129 -p 11211 -c 256 -P /tmp/memcached.pid
-d选项是启动一个守护进程,
-m是分配给Memcache使用的内存数量,单位是MB,我这里是100MB,
-u是运行Memcache的用户,我这里是root,
-l是监听的服务器IP地址,如果有多个地址的话,我这里指定了服务器的IP地址192.168.36.200,
-p是设置Memcache监听的端口,我这里设置了11211,最好是1024以上的端口,我们这里统一使用11211-c选项是最大运行的并发连接数,默认是1024,我这里设置了256,按照你服务器的负载量来设定。
-P是设置保存Memcache的pid文件,我这里是保存在/tmp/memcached.pid
3)、结束Memcache进程。
# kill cat /tmp/memcached.pid
6、 监测是否启动成功方式
cmd
c:/>telnet 192.168.160.129 11211
直接敲击stats命令
7、 设定memcache的telnet访问限制
请限定telnet的访问,使之只能在中转机上访问
8、 memcache的常见概念
memcached会预先分配内存,memcached分配内存方式称之为allocator,首先,这里有3个概念:1 slab2 page3 chunk解释一下,一般来说一个memcahced进程会预先将自己划分为若干个slab,每个slab下又有若干个page,每个page下又有多 个chunk,如果我们把这3个咚咚看作是object得话,这是两个一对多得关系。再一般来说,slab得数量是有限得,几个,十几个,或者几十个,这 个跟进程配置得内存有关。而每个slab下得page默认情况是1m,也就是说如果一个slab占用100m得内存得话,那么默认情况下这个slab所拥 有得page得个数就是100,而chunk就是我们得数据存放得最终地方
9、 Memcache的常用命令
1)、查询状态命令:stats:
2)、查询版本号 version
3)、退出命令 quit
3)、清空缓存数据(其实是将所有缓存数据标记为过期):flush_all
参考资料:
#memcached
http://memcached.org/http://code.jellycan.com/memcached/
#Memcached安装和基本使用(windows)
http://www.cnblogs.com/netflu/archive/2010/03/12/1684305.html
#memcache简要安装步骤
http://kb.cnblogs.com/a/1575049/
#Memcached linux安装说明
http://kb.cnblogs.com/a/1501326/
PHP 扩展
安装Memcache的PHP扩展(如果不使用PHP此步可以不用做)
1.在http://pecl.php.net/package/memcache 选择相应想要下载的memcache版本。
2.安装PHP的memcache扩展
tar vxzf memcache-2.2.1.tgz
cd memcache-2.2.1
/usr/local/php/bin/phpize
./configure –enable-memcache –with-php-config=/usr/local/php/bin/php-config –with-zlib-dir
make
make install
3.上述安装完后会有类似这样的提示:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/
4.把php.ini中的extension_dir = “./”修改为
extension_dir = “/usr/local/php/lib/php/extensions/no-debug-non-zts-2007xxxx/”
5.添加一行来载入memcache扩展:extension=memcache.so
3.重启apache,service httpd restart
Memcache环境测试:
运行下面的php文件,如果有输出This is a test!,就表示环境搭建成功。开始领略Memcache的魅力把!
< ?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;
?>
我启动我的memcache的命令是:
./memcached -d -m 64 -u root -l 10.1.2.135 -p 11211 -c 256 -P /tmp/memcached.pid
./memcached -d -m 64 -u root -l 10.1.2.135 -p 11212 -c 256 -P /tmp/memcached.pid
./memcached -d -m 64 -u root -l 10.1.2.135 -p 11213 -c 256 -P /tmp/memcached.pid
其中10..1.2.135为memcache所在的服务器的地址,可以同时启动多个mem的守护进程缓存数据,但是端口号是不能相同的。
我安装memcache时也遇到了一个问题:
/usr/local/memcached/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
主要是看最后一行提示的错误,那么我们:
以下是代码片段:
ln -s /usr/local/lib/libevent-1.4.so.2 /usr/lib/libevent-1.4.so.2
ldconfig
之后再次运行就可以了