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

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

最佳答案

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

如果要压缩数据,则有2个选项,您可以在Redis上编辑一些配置,如ziplist和intets,也可以使用选择的算法手动压缩值。

例如,我在Java中使用了kryo,它可以为您提供来自对象的字节数组,可以使用deflate对其进行压缩,然后将其转换为基本64 String来持久化它。为了找回对象,需要获取64位基本字符串,获取字节数组,对其进行膨胀,然后使用kryo将其反序列化。它完成了:)

编辑

您也可以跳过基数为64的操作,并将Jedis与BinaryJedis.java中实现的字节数组签名一起使用,它将更加干净和快捷。

关于redis - Jedis中有任何字符串压缩机制吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19423045/

10-16 16:21