C++ 使用C+写入redis+;使用最小可能带宽

C++ 使用C+写入redis+;使用最小可能带宽,c++,c,redis,C++,C,Redis,我想用尽可能少的带宽将ASCII字符串文件写入远程redis服务器(这并不重要,关键是redis写入字符串)。要做到这一点,最好的压缩形式是什么?该文件包含如下行: “Employee One-blah-blah”,我想在写入之前以某种方式压缩每一个,因为我有一个严重的带宽限制 大文件示例: EMP1500000125670205,21.50,20.50 EMP2215500125670205,21.50,20.50 EMP3251200125670205,21.50,20.50 EMP4234

我想用尽可能少的带宽将ASCII字符串文件写入远程redis服务器(这并不重要,关键是redis写入字符串)。要做到这一点,最好的压缩形式是什么?该文件包含如下行:

“Employee One-blah-blah”,我想在写入之前以某种方式压缩每一个,因为我有一个严重的带宽限制

大文件示例:

EMP1500000125670205,21.50,20.50

EMP2215500125670205,21.50,20.50

EMP3251200125670205,21.50,20.50

EMP4234600125670205,21.50,20.50

EMP575000165670205,21.50,20.50

EMP6134600125670205,21.50,20.50


它是一个带有字符串和数字的CSV,我想用整个文件和/或一行一行地写它

一个较长的文件内容示例将帮助我们找到一种更好的压缩方法。编辑以包含文件信息如果您一次编写一批行,使用gzip并不太糟糕,您可以轻松利用现有工具。如果您要推送单独的行,以二进制形式发送数据的数字部分可能是一个好的开始。行之间的增量压缩,然后压缩可能会非常好。也就是说,假设字段的宽度固定,从第二行的二进制表示中减去第一行的二进制表示(并对下一行执行相同的操作,等等,始终减去正上方的行);这将产生大量的行,其中大部分包含0(因为大部分信息与前一行的信息类似),这是非常可压缩的。