memcached 笔记

安装就不用记了,都会,记点有用的。

 

参数: 

启动方式:
-d   以守护程序( daemon )方式运行
-u root   指定用户,如果当前为 root ,需要使用此参数指定用户
-P / tmp /a.pid  保存 PID 到指定文件
内存设置:
-m 1024   数据内存数量,不包含 memcached 本身占用,单位为 MB
-M   内存不够时禁止 LRU ,报错
-n 48  初始 chunk=key+suffix+value+32 结构体,默认 48 字节
-f 1.25   增长因子,默认 1.25
-L  启用大内存页,可以降低内存浪费,改进性能
连接设置:
-l 127.0.0.1   监听的 IP 地址,本机可以不设置此参数
-p 11211   TCP 端口,默认为 11211 ,可以不设置
-U 11211  UDP 端口,默认为 11211 , 0 为关闭
并发设置:
-c 1024  最大并发连接数,默认 1024 ,最好是 200
-t 4  线程数,默认 4 。由于 memcached 采用 NIO ,所以更多线程没有太多作用
-R 20  每个 event 连接最大并发数,默认 20
-C  禁用 CAS 命令(可以禁止版本计数,减少开销)

 

###############################################

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组件还不太熟悉吧。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值