今天想对memcache优化,同时跟踪memcache内存使用率及命中率,通过命令模式连接memcache,步骤如下:
(1) telnet 连接
(2) 通过stats slabs查看slabs使用情况如下图
通过以上图发现绝大多数item都存储在STAT 15,且chunk_size为2320(即2K),但是业务数据只是个Element对象,转化为xml长度仅仅只有700字节,从这可以看出memcache(客户端版本:net.spy memcached-2.4.2)客户端自带的序列化使存储的数据翻了将近3倍。由此接下来将考虑通过第三方的序列来封装客户端序列化机制,据说google的protobuf序列化不错,接下来将进一步对memcache内存优化,待续~~~~
(3) 通过将Element对象转为xml字符串存储到MC,缓存由以前的6G+减小到当前的2G(数据条数:300W+)