TLV格式 及 VARINT数值压缩存储方法
使用Thrift格式进行数据序列化反序列化,thrift的存储格式,主要使用thrift的TCompactProtocol。
发现该序列化方式主要使用了TLV格式式来存储每个字段,使用VARINT来表示其中的L。
1. TLV 格式
很简单,Type-length-value(类型-长度-值)。在一串字节中,使用该方式标示出一个自定义的字段。
三个域的表示方式均可自定义。如使用1个字节标示数据类型T,使用4个字节标示数据长度L,之后使用L个字节来表示数据的值。(其实Thrift的TBinaryProtocol就是这种方式)
2. VARINT 数值压缩存储
c中int使用4个固定字节表式,即使数字很小。假如使用int16,则不能表示较大的数字。
而VARINT是一种可变长度的表示数字的方法,当数字较小时可以使用1个字节,如果比较大需要利用5个。