memcached(十三)memcached内存占用分析

最近又在研究memcached,如果想进一步研究如何使用分布式缓存,我们就需要知道具体的数据在内存中占用的情况。在启动memcached的时候,增加参数

-vv

控制太可以显示设置的细节。

例如:

./memcached-d-m2m-p11211-c1024-f1.25-n80-t16-uroot-vv

设置命令set

memcachedClient.set("abcd",111,65535);//key,超时时间,值

服务器命令行显示

setabcd5121112//key,额外信息(类似descrption),超时时间,字节数

设置命令namespaceandset

memcachedClient.beginWithNamespace("1");//命名空间

memcachedClient.set("key3",111,65535);

服务器命令行显示

set1386335186060:key35121112

1)此命令,先会执行一个get命令,如果namespace不存在,则执行一个set命令,增加namespace,然后再执行set明令加入数据,相当于执行了3次命令

2)如果是第二次,则执行一次get命令,namespace存在,直接执行set命令

3)结论:

所以尽量不要使用接口memcachedClient.beginWithNamespace,严重影响性能。

设置命令namespaceanddelete

memcachedClient.beginWithNamespace("1");//命名空间

memcachedClient.delete("key5");

服务器命令行显示

delete1386336170626:key5

执行一次get命令,namespace存在,再直接执行delete命令

所以尽量不要使用接口memcachedClient.beginWithNamespace,严重影响性能。

其中字符串中,1个英文字符,占1个字节

数字中,255占1个字节,256占2个字节,65535占2个字节,65536占3个字节

相关推荐