跳到主要内容
CNode

node中有什么比较好的字符串压缩工具没

社区
Ppeiweippww发布于 13 年前最后回复 13 年前
1297640

我有个比较大的字符串,需要存入数据库,我想压缩下后再存储,用的时候再解压,有没有什么好的字符串压缩工具?

查看回复

回复 (12)

A
alvis#1213 年前
V
vicanso#1013 年前
引用 youxiachai据我了解如果字符串只是几百k的话,压缩反而会变大了...

“字符串”,几百byte倒是有可能变大,几百K怎么会。

V
vicanso#913 年前
引用 vicanso直接使用自带的zlib,将数据压缩,保存压缩数据,获取的时候再将它解压 http://nodejs.org/api/zlib.html

@peiweippww 不知道你的db保存的数据类型是什么,不过我是确定redis可以保存Buffer.toString('binary')的数据的,我以前就将压缩的html保存在redis,再拿出来过。

P
peiweippww#813 年前
引用 vicanso直接使用自带的zlib,将数据压缩,保存压缩数据,获取的时候再将它解压 http://nodejs.org/api/zlib.html

@vicanso 我这样弄报错了,var str = 'xxxxx';zlib.deflate( str, function( err, buf ) { db.insert( ..., {data:buf } ) }); 然后我再从数据库获取db.select(...,function(err,res ){ 解压:zlib.unzip(res_buf),这时候就报错了 })

Y
youxiachai#713 年前

据我了解如果字符串只是几百k的话,压缩反而会变大了...

V
vicanso#613 年前
引用 vicanso直接使用自带的zlib,将数据压缩,保存压缩数据,获取的时候再将它解压 http://nodejs.org/api/zlib.html

@peiweippww fs = require 'fs' zlib = require 'zlib' fs.readFile './test.txt', (err, data) -> console.dir data.length zlib.gzip data, (err, zip) -> console.dir zip.length str = zip.toString 'binary' buf = new Buffer str, 'binary' zlib.gunzip buf, (err, newData) -> console.dir newData.length

P
peiweippww#513 年前
引用 vicanso直接使用自带的zlib,将数据压缩,保存压缩数据,获取的时候再将它解压 http://nodejs.org/api/zlib.html

这个压缩后是buffer吧,我还有个中间过程,数据先是放在redis中的,redis貌似只能存字符串

V
vicanso#413 年前

直接使用自带的zlib,将数据压缩,保存压缩数据,获取的时候再将它解压 http://nodejs.org/api/zlib.html

C
chihuohuo#313 年前
引用 chihuohuo字符串压缩。。。 去掉空格换行符注释?还有什么 如果只是这些 用正则就好了呀

@peiweippww 合并的话,字符串不就变了样,后来要用的时候不会影响到吗 你说的好像是有点类似代码混淆,把所有的相同长字符替换成短字符,之类的

P
peiweippww#213 年前
引用 chihuohuo字符串压缩。。。 去掉空格换行符注释?还有什么 如果只是这些 用正则就好了呀

我这里面没有空格换行符,有不少重复的字段,我在想这些是不是可以合并起来

C
chihuohuo#113 年前

字符串压缩。。。 去掉空格换行符注释?还有什么 如果只是这些 用正则就好了呀

参与回复

登录后即可参与回复。登录