安装就不用记了,都会,记点有用的。
参数:
###############################################
memcached有可能会死掉(mixi.jp经验)
监视memcached进程并自动启动
启动脚本样例:run.sh
#!/bin/sh
if [ f /etc/sysconfig/memcached ];then
. /etc/sysconfig/memcached
fi
exec 2>&1
exec memcached p $PORT u $USER m $CACHESIZE c $MAXCONN $OPTIONS
###############################################
命令列表
存储命令set/add/replace/append/prepend/cas
读取命令get=bget?/gets
删除命令delete
计数命令incr/decr
统计命令stats/settings/items/sizes/slabs
工具memcached-tool
###############################################
memcached在启动时指定 Growth Factor因子(通过-f选项),就可以在某种程度上控制slab之间的差异。
默认值为1.25。但是,在该选项出现之前,这个因子曾经固定为2,称为“powers of 2”策略。
让我们用以前的设置,以verbose模式启动memcached试试看:
liangc@ubuntu:/app/c$ memcached -f 2 -vv
slab class 1: chunk size 80 perslab 13107
slab class 2: chunk size 160 perslab 6553
slab class 3: chunk size 320 perslab 3276
liangc@ubuntu:/app/c$ memcached -f 1.2 -vv
slab class 1: chunk size 80 perslab 13107
slab class 2: chunk size 96 perslab 10922
slab class 3: chunk size 120 perslab 8738
可见,组间差距比因子为2时小得多,更适合缓存几百字节的记录。从上面的输出结果来看,可能会觉得
有些计算误差,这些误差是为了保持字节数的对齐而故意设置的。
#################################################
#启动服务 mc-start.sh
#memcached –d –m 100 -l 127.0.0.1 -p 11211 -P /log/memcached/11211.pid
ip="192.168.137.2"
ports=(11211 11212 11213 11214)
mem=100
len=${#ports[*]}
i=0
while [ $i -lt $len ]; do
rm -rf $logpath/${ports[$i]}.pid
memcached –m $mem -l $ip -p ${ports[$i]} -d
echo service $i --">" $ip":"${ports[$i]}
let i++
done
#关闭服务
ps -ax |grep memcached|awk '{print $1}'|xargs kill -9
###########################################
常用启动 :
./memcached –m 512 -L -u 非root用户 -n 128 -c 2048 -t 10 -R 100 -C -l 159.226.83.252 -p 11211 -d
###########################################
查看运行状态 : watch "echo stats | nc 127.0.0.1 11211"
这里显示了很多状态信息,下边详细解释每个状态项:
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:被请求的工作线程的总数量。这个解释是协议文档给的,具体什么意思,我目前还没搞明白。
总结:stats命令总体来说很有用,通过这个命令我们很清楚当前memcached服务的各方面的信息。除此之外,我还没有其他方法可以知道这些状态信息。可能还有其他途径,可能我对memcached组件还不太熟悉吧。