我要在redis实例中存储一些JSON。没有一个JSON对象会很长 - 想想每个redis键的单个对象,每个JSON对象上可能有20组属性 - 值对。
有些事情:
关键1:
{
"id": "de305d54-75b4-431b-adb2-eb6b9e546011",
"email": "joe.bloggs@gmail.com",
"telephone": "01234567890",
"age": 18
}
关键2:
{
"id": "de305d54-75b4-431b-adb2-eb6b9e546012",
"email": "john.doe@gmail.com",
"telephone": "01234567890",
"age": 19
}
将有数百万条这样的条目。
大约12个属性名称将是静态的,其余的将变化,我期望大多数值变化(尽管有些可能是真/假,一些可能匹配的低整数,也许是某些与域名的相似之处)。
是否有合适的压缩算法,理想情况下是Java实现,这对于这类数据是理想的?也许我可以提供静态字典而不是像LZW尝试从每个数据中学习的东西?
答案 0 :(得分:1)
您可以尝试使用更有效的替代json,如:
答案 1 :(得分:0)
这看起来就像我追求的那样:
http://docs.oracle.com/javase/7/docs/api/java/util/zip/Deflater.html#setDictionary(byte[])
在Boris the Spider的评论之后,我打算尝试使用HUFFMAN_ONLY选项,但还没有。 FWIW只有一个测试数据样本,我看到压缩字节[]约为原始数据的20%。