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个字节