memcache 分布式缓存
memcached安装和启动2009-06-30 15:26
1
下载 libevent-1.4.11-stable.tar.gz //http://www.monkey.org/~provos/libevent/
# cd /tmp
# tar libevent-1.4.11-stable.tar.gz
# cd libevent-1.4.11-stable
# ./configure --prefix=/usr
# make
# make install
2
下载memcached-1.2.8.tar.gz //http://www.danga.com/memcached/
# cd /tmp
# tar zxvf memcached-1.2.8.tar.gz
# cd memcached-1.2.8
# ./configure --with-libevent=/usr
# make
# make install
3
测试
/usr/local/bin/memcached -h
正常ok
4
常见错误
/usr/local/bin/memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
解决办法
LD_DEBUG=libs memcached -v
输出
4962: find library=libevent-1.4.so.2 ; searching
4962: search cache=/etc/ld.so.cache
4962: search path=/lib64/tls/x86_64:/lib64/tls:/lib64/x86_64:/lib64:/usr/lib64/tls/x86_64:/usr/lib64/tls:/usr/lib64/x86_64:/usr/lib64 (system search path)
4962: trying file=/lib64/tls/x86_64/libevent-1.4.so.2
4962: trying file=/lib64/tls/libevent-1.4.so.2
4962: trying file=/lib64/x86_64/libevent-1.4.so.2
4962: trying file=/lib64/libevent-1.4.so.2
4962: trying file=/usr/lib64/tls/x86_64/libevent-1.4.so.2
4962: trying file=/usr/lib64/tls/libevent-1.4.so.2
4962: trying file=/usr/lib64/x86_64/libevent-1.4.so.2
4962: trying file=/usr/lib64/libevent-1.4.so.2
4962:
memcached: error while loading shared libraries: libevent-1.4.so.2: cannot open shared object file: No such file or directory
然后对应的做link
ln -s /usr/lib/libevent-1.4.so.2 /usr/lib64/libevent-1.4.so.2
5 启动
# /usr/local/bin/memcached -d -m 2048 -u root -l 192.168.1.20 -p 12111 -c 1024 -P /tmp/memcached.pid
参数说明:
-d 启动为守护进程
-m <num> 分配给Memcached使用的内存数量,单位是MB,默认为64MB
-u <username> 运行Memcached的用户,仅当作为root运行时
-l <ip_addr> 监听的服务器IP地址,默认为环境变量INDRR_ANY的值
-p <num> 设置Memcached监听的端口,最好是1024以上的端口
-c <num> 设置最大并发连接数,默认为1024
-P <file> 设置保存Memcached的pid文件,与-d选择同时使用
=================================== status ================================
这里显示了很多状态信息,下边详细解释每个状态项:
1. pid: memcached服务进程的进程ID
2. uptime: memcached服务从启动到当前所经过的时间,单位是秒。
3. time: memcached服务器所在主机当前系统的时间,单位是秒。
4. version: memcached组件的版本。这里是我当前使用的1.2.6。
5. pointer_size:服务器所在主机操作系统的指针大小,一般为32或64.
6. curr_items:表示当前缓存中存放的所有缓存对象的数量。不包括目前已经从缓存中删除的对象。
7. total_items:表示从memcached服务启动到当前时间,系统存储过的所有对象的数量,包括目前已经从缓存中删除的对象。
8. bytes:表示系统存储缓存对象所使用的存储空间,单位为字节。
9. curr_connections:表示当前系统打开的连接数。
10. total_connections:表示从memcached服务启动到当前时间,系统打开过的连接的总数。
11. connection_structures:表示从memcached服务启动到当前时间,被服务器分配的连接结构的数量,这个解释是协议文档给的,具体什么意思,我目前还没搞明白。
12. cmd_get:累积获取数据的数量,这里是3,因为我测试过3次,第一次因为没有序列化对象,所以获取数据失败,是null,后边有2次是我用不同对象测试了2次。
13. cmd_set:累积保存数据的树立数量,这里是2.虽然我存储了3次,但是第一次因为没有序列化,所以没有保存到缓存,也就没有记录。
14. get_hits:表示获取数据成功的次数。
15. get_misses:表示获取数据失败的次数。
16. evictions:为了给新的数据项目释放空间,从缓存移除的缓存对象的数目。比如超过缓存大小时根据LRU算法移除的对象,以及过期的对象。
17. bytes_read:memcached服务器从网络读取的总的字节数。
18. bytes_written:memcached服务器发送到网络的总的字节数。
19. limit_maxbytes:memcached服务缓存允许使用的最大字节数。这里为67108864字节,也就是是64M.与我们启动memcached服务设置的大小一致。
20. threads:被请求的工作线程的总数量。这个解释是协议文档给的,具体什么意思,我目前还没搞明白。
页:
[1]