我有一些字节的数据,我想把它们放到Redis中,但是Redis只接受二进制安全字符串,并且我的数据有一些二进制非安全字节。那么,我如何将这些字节转换为二进制安全字符串,以便将它们保存到Redis?
Base64适用于我,但它使数据更大,还有更好的主意吗?
更新:我想将我的protobuf对象序列化为Redis,而序列化后的数据为'\x00',所以当我从Redis读取数据时,我无法将数据反序列化为object。然后我试了试base64,它工作得很好,但尺寸更大。
所以我想弄清楚如何将二进制数据(protobuf对象)安全地和较小的大小序列化到Redis中
发布于 2012-12-13 18:38:47
您可以尝试ISO-8859-1编码。这在字节和字符之间使用一对一的映射。
这仍然可能导致损坏,这取决于为什么Redis需要这个“二进制安全”字符串。您可能必须使用base64。
发布于 2013-01-04 04:42:27
序列化二进制对象(如protobuf对象)的唯一安全方法是对其进行base64编码。Base64的开销为33%,但它允许您安全地将任意二进制数据转换为文本(例如在xml文件中使用)。
https://stackoverflow.com/questions/13857824
复制相似问题