SpyMemcached的Transcoder
2016-09-06 本文已影响0人
blowyourheart
-
Transcode的作用是把一个Object转换成CachedData(flag, byte[]) 二元组,以方便使用memcache协议将数据存储到服务器端。
-
SpyMemcached提供了默认的Transcode实现, SerializingTranscoder.
对基本类型,boolean, byte, int, long, float, double, date, byte[]进行了二进制提取处理,
2.1 boolean编码为byte的1,0.
2.2 数字类型会转换成对应的字节长度,并对开头的0进行剔除,以尽量节省空间。
2.3 Date类型使用Date.getTime()然后按照long转换成byte[] -
对于String会提取UTF8字节数组处理。对其他的Object,则使用java提供的默认序列化机制来与byte[]互转。
-
最后对于获得的byte[], 如果超过16K,会进行gzip压缩处理。16K这个阈值可以修改。