下载:http://www.danga.com/memcached/dist/memcached-1.2.2.tar.gz
另外,Memcache用到了libevent这个库用于Socket的处理,所以还需要安装libevent,libevent的最新版本是libevent-1.3。(如果你的系统已经安装了libevent,可以不用安装)
官网:http://www.monkey.org/~provos/libevent/
下载:http://www.monkey.org/~provos/libevent-1.3.tar.gz用wget指令直接下载这两个东西.下载回源文件后。
1.先安装libevent。这个东西在配置时需要指定一个安装路径,即./configure --prefix=/usr;然后make;然后make install;
2.再安装memcached,只是需要在配置时需要指定libevent的安装路径即./configure --with-libevent=/usr;然后make;然后make install;
这样就完成了Linux下Memcache服务器端的安装。详细的方法如下:
1.分别把memcached和libevent下载回来,放到 /tmp 目录下:
cd /tmp wget http://www.danga.com/memcached/dist/memcached-1.2.0.tar.gz wget http://www.monkey.org/~provos/libevent-1.2.tar.gz
2.先安装libevent:
tar zxvf libevent-1.2.tar.gz cd libevent-1.2 ./configure --prefix=/usr make make install
3.测试libevent是否安装成功:
ls -al /usr/lib | grep libevent
lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent-1.2.so.1 -> libevent-1.2.so.1.0.3 -rwxr-xr-x 1 root root 263546 11?? 12 17:38 libevent-1.2.so.1.0.3 -rw-r--r-- 1 root root 454156 11?? 12 17:38 libevent.a -rwxr-xr-x 1 root root 811 11?? 12 17:38 libevent.la lrwxrwxrwx 1 root root 21 11?? 12 17:38 libevent.so -> libevent-1.2.so.1.0.3
还不错,都安装上了。4.安装memcached,同时需要安装中指定libevent的安装位置:
cd /tmp tar zxvf memcached-1.2.0.tar.gz cd memcached-1.2.0 ./configure --with-libevent=/usr make make install
如果中间出现报错,请仔细检查错误信息,按照错误信息来配置或者增加相应的库或者路径。
安装完成后会把memcached放到 /usr/local/bin/memcached ,5.测试是否成功安装memcached:
ls -al /usr/local/bin/mem*
-rwxr-xr-x 1 root root 137986 11?? 12 17:39 /usr/local/bin/memcached
-rwxr-xr-x 1 root root 140179 11?? 12 17:39 /usr/local/bin/memcached-debug
安装Memcache的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
加入memcache扩展
echo 'extension=memcache.so' >> /etc/php.ini
然后重启nginx,service nginxd restart,重新加载php模块,把刚才安装的memcache扩展加载进来。
启动memcache
/usr/local/bin/memcached -m 32m -p 11211 -d -u root -P /tmp/memcached.pid -c 256
如果启动的时候报错:/usr/local/bin/memcached: error while loading shared libraries: libevent-1.2.so.1: cannot open shared object file: No such file or directory
那么:
ldd /usr/local/bin/memcached
linux-vdso.so.1 => (0x00007fff06eee000)
libevent-1.2.so.1 => not found
libc.so.6 => /lib64/libc.so.6 (0x00000037cd800000)
/lib64/ld-linux-x86-64.so.2 (0x00000037cd000000)
使用命令行,做快捷方式。
ln -s /usr/lib/libevent-1.2.so.1 /lib64/libevent-1.2.so.1
就可以了
如果要远程连接,那么关闭防火墙,或者开启端口11211
连接方式
telnet ip 11211
用php连接
< ?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;
?>
第一、连接:telnet 127.0.0.1 11211
第二、按回车键
第三、flush_all 后回车
控制台显示OK,表示操作成功
其它:
memcache的运行状态可以方便的用stats命令显示。
首先用telnet 127.0.0.111211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。
这些状态的说明如下:
pid
memcache服务器的进程ID
uptime
服务器已经运行的秒数
time
服务器当前的unix时间戳
version
memcache版本
pointer_size
当前操作系统的指针大小(32位系统一般是32bit)
rusage_user
进程的累计用户时间
rusage_system
进程的累计系统时间
curr_items
服务器当前存储的items数量
total_items
从服务器启动以后存储的items总数量
bytes
当前服务器存储items占用的字节数
curr_connections
当前打开着的连接数
total_connections
从服务器启动以后曾经打开过的连接数
connection_structures
服务器分配的连接构造数
cmd_get
get命令(获取)总请求次数
cmd_set
set命令(保存)总请求次数
get_hits
总命中次数
get_misses
总未命中次数
evictions
为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
bytes_read
总读取字节数(请求字节数)
bytes_written
总发送字节数(结果字节数)
limit_maxbytes
分配给memcache的内存大小(字节)
threads
当前线程数
一、缓存命中率 = get_hits/cmd_get * 100%
二、get_misses的数字加上get_hits应该等于cmd_get
三、total_items == cmd_set ==get_misses,当可用最大内存用光时,memcached就会删掉一些内容,等式就会不成立
[root@localhost scripts]# ./memcached-tool localhost:11211
首先用telnet 127.0.0.111211这样的命令连接上memcache,然后直接输入stats就可以得到当前memcache的状态。
这些状态的说 明如下:
pid | memcache服务器的进程ID |
uptime | 服 务器已经运行的秒数 |
time | 服务器当前的unix时间戳 |
version | memcache 版本 |
pointer_size | 当前操作系统的指针大小(32位系统一般是32bit) |
rusage_user | 进 程的累计用户时间 |
rusage_system | 进程的累计系统时间 |
curr_items | 服 务器当前存储的items数量 |
total_items | 从服务器启动以后存储的items总数量 |
bytes | 当 前服务器存储items占用的字节数 |
curr_connections | 当前打开着的连接数 |
total_connections | 从 服务器启动以后曾经打开过的连接数 |
connection_structures | 服务器分配的连接 构造数 |
cmd_get | get命令(获取)总请求次数 |
cmd_set | set 命令(保存)总请求次数 |
get_hits | 总命中次数 |
get_misses | 总 未命中次数 |
evictions | 为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items) |
bytes_read | 总读取字 节数(请求字节数) |
bytes_written | 总发送字节数(结果字节数) |
limit_maxbytes | 分 配给memcache的内存大小(字节) |
threads | 当前线程数 |
结束进程
ps ef|grep mem*
kill -9 id
/usr/local/bin/memcached -d -m 512 -u www -l 192.168.200.13 -p11211 -c 10000