七叶笔记 » golang编程 » Golang snappy包介绍

Golang snappy包介绍

go项目中遇到大字符传达的时候,采用snappy压缩、解压缩是最好的方案。 虽然不是最高压缩率,但是它旨在获得高速的压缩和合理的压缩率,

突出的高速率和合理性。现在微服务中很火,其中涉及到 RPC 调用传递压缩,snappy是一个不错的选择。

snappy包:

github .com/golang/snappy”

解压:snappy.Decode(dst, src []byte) ([]byte error)

压缩:snappy.Encode(dst, src []byte) ([]byte)

示例:

package main

import (

“fmt”

“github.com/golang/snappy”

)

var (

testmap = map[string]string{

“a”: “aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”,

“b”: “bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb”,

}

)

func main() {

for k, v := range testmap {

got := snappy.Encode( nil , []byte(v))

fmt.Println(“k:”, k, “len:”, len(v), len(got))

}

}

结果:

k: a len: 34 6

k: b len: 33 6

相关文章