Jedis中是否有任何字符串压缩机制?

时间:2013-10-17 09:34:57

标签: redis jedis

spymemcached内置了压缩功能。虽然Jedis是Redis的首选java客户端,但有没有内置的压缩​​API?

我没有找到任何API。 Redis还有其他替代压缩技术吗?

1 个答案:

答案 0 :(得分:3)

Jedis实际上对String值进行了一些操作,因为java使用UTF-16而redis使用C-char 8位编码。有一个名为SafeEncoder的类可以确保一切正确。

如果你想压缩数据,你有2个选项,你可以在redis上编辑一些配置,比如ziplists和intsets,或者你可以使用你选择的算法手动压缩你的值。

例如,我在java中使用过kryo,它可以从对象中提供一个字节数组,使用deflate压缩它,然后将其转换为基数64字符串以保持它。要获取对象,可以获得base 64字符串,获取字节数组,对其进行膨胀,然后使用kryo对其进行反序列化。它完成了:))

修改

您还可以跳过base 64操作并使用带有BinaryJedis.java中实现的bytearray签名的Jedis,它将更干净,更快。