Data structures thrift、protobuf、avro等是否支持直接查询编码数据?

Data structures thrift、protobuf、avro等是否支持直接查询编码数据?,data-structures,protocol-buffers,thrift,avro,Data Structures,Protocol Buffers,Thrift,Avro,thrift、protobuf、avro等是否支持查询生成的压缩数据?或者像一个储蓄服务器这样的东西,在能够查询压缩数据之前,必须先对其进行反编码吗 背景:因为我的用例可能有一个完全不同的答案,所以我没有看到 我在纸上画出了一个类似于a的自定义数据结构,它将包含数千万/数亿个键值对。整个东西需要在RAM中,所以它需要紧凑 出于这个原因,我可能会跳过正常的kv存储,因为编码的开销太大了。它们无法针对结构的特定情况进行优化。Redis在afaik中每个键的开销最小,但这还不够:每个键100+字节 我

thrift、protobuf、avro等是否支持查询生成的压缩数据?或者像一个储蓄服务器这样的东西,在能够查询压缩数据之前,必须先对其进行反编码吗

背景:因为我的用例可能有一个完全不同的答案,所以我没有看到

我在纸上画出了一个类似于a的自定义数据结构,它将包含数千万/数亿个键值对。整个东西需要在RAM中,所以它需要紧凑

出于这个原因,我可能会跳过正常的kv存储,因为编码的开销太大了。它们无法针对结构的特定情况进行优化。Redis在afaik中每个键的开销最小,但这还不够:每个键100+字节

我已经研究了,,这将允许我将数据编码为一个很好的紧凑结构,所有这些都考虑到我的数据结构编码键的特定机会,如1或2字节、位打包、值是固定长度等

但是,我完全不清楚这些协议/技术是否允许我按原样查询压缩的数据结构,或者在查询之前是否必须对数据结构进行反编码?如果是后者,那么整个练习对我没有多大用处

另一种选择是,我曾考虑研究其他编程语言c/c++,尽管我从未涉猎过它,它可能会让我对结构拥有非常严格的内存控制,而不是Node/javascript,后者非常糟糕


有人吗?

他们需要被解码以便查询

他们需要被解码以便查询querying@BruceMartin当前位置介意我接受这个答案吗?