前言
從網(wǎng)站建設(shè)到定制行業(yè)解決方案,為提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)服務(wù)體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設(shè)解決方案,助力業(yè)務(wù)快速發(fā)展。創(chuàng)新互聯(lián)建站將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務(wù)。項(xiàng)目中遇到的壓縮/解壓縮需求應(yīng)該是很多的,比如典型的考慮網(wǎng)絡(luò)傳輸延時(shí)而對(duì)數(shù)據(jù)進(jìn)行壓縮傳輸,又或者其他各種省空間存儲(chǔ)需求等。這次同樣是遇到了類似需求,在做一個(gè)爬蟲時(shí),因?yàn)樽ト№?xiàng)目還未確定,所以考慮將整個(gè)html頁(yè)面壓縮存儲(chǔ)于數(shù)據(jù)庫(kù),于是又是各種google,最后不出意外的google到了google家的Snappy :-)
google 自家的snappy 壓縮優(yōu)點(diǎn)是非常高的速度和合理的壓縮率。壓縮率比gzip 小,CPU 占用小。
golang中snappy使用場(chǎng)合
下面是對(duì)幾個(gè)簡(jiǎn)單的字符串做snappy 壓縮前后對(duì)比:
package main import ( "fmt" "github.com/golang/snappy" "io/ioutil" ) var ( textMap = map[string]string{ "a": `1234567890-=qwertyuiop[]\';lkjhgfdsazxcvbnm,./`, "b": `1234567890-=qwertyuiop[]\';lkjhgfdsazxcvbnm,./1234567890-=qwertyuiop[]\';lkjhgfdsazxcvbnm,./1234567890-=qwertyuiop[]\';lkjhgfdsazxcvbnm,./1234567890-=qwertyuiop[]\';lkjhgfdsazxcvbnm,./`, "c": `浕浉浄浀浂洉洡洣浐洘泚浌洼洽派洿浹澆湞濁測(cè)澮濟(jì)瀏渾滸濃潯泿洱涏洀潔洂洃洄洅洆洇洈洊洋洌洎洏洐洑灑洓洔洕洗洠洙洚洛洝洞洟洢洤津洦洧洨洩洪洫洬洭洮洲洳洴洵洶洷洸洹洺活涎`, "d": `浕浉浄浀浂洉洡洣浐洘泚浌洼洽派洿浹澆湞濁測(cè)澮濟(jì)瀏渾滸濃潯泿洱涏洀潔洂洃洄洅洆洇洈洊洋洌洎洏洐洑灑洓洔洕洗洠洙洚洛洝洞洟洢洤津洦洧洨洩洪洫洬洭洮洲洳洴洵洶洷洸洹洺活涎浕浉浄浀浂洉洡洣浐洘泚浌洼洽派洿浹澆湞濁測(cè)澮濟(jì)瀏渾滸濃潯泿洱涏洀潔洂洃洄洅洆洇洈洊洋洌洎洏洐洑灑洓洔洕洗洠洙洚洛洝洞洟洢洤津洦洧洨洩洪洫洬洭洮洲洳洴洵洶洷洸洹洺活涎浕浉浄浀浂洉洡洣浐洘泚浌洼洽派洿浹澆湞濁測(cè)澮濟(jì)瀏渾滸濃潯泿洱涏洀潔洂洃洄洅洆洇洈洊洋洌洎洏洐洑灑洓洔洕洗洠洙洚洛洝洞洟洢洤津洦洧洨洩洪洫洬洭洮洲洳洴洵洶洷洸洹洺活涎`, } imgSrc = []string{ "1.jpg", "2.jpg", "3.jpg", "4.jpg", } ) func main() { for k, v := range textMap { got := snappy.Encode(nil, []byte(v)) fmt.Println("k:", k, "len:", len(v), len(got)) } fmt.Println("snappy jpg") for _, v := range imgSrc { buf, err := ioutil.ReadFile(v) if err == nil { got := snappy.Encode(nil, buf) fmt.Println("k:", v, "len:", len(buf), len(got)) } } }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。