什么是二进制安全字符串?

时间:2017-06-05 20:41:24

标签: string redis

什么是二进制安全字符串?它只是一个长度附加在字符串本身的字符串吗?为什么他们被称为二元安全呢?不确定我应该标记redis,但在阅读redis doc时阅读这个术语。

4 个答案:

答案 0 :(得分:5)

二进制安全字符串是可以包含任何字符(字节)的字符串。

例如,许多编程语言使用0x00字符作为字符串结束标记,因此从这个意义上说,二进制安全字符串可以包含这些字符串。

答案 1 :(得分:1)

二进制安全字符串不对其长度或终止字符做出任何假设。例如,在Redis中(因为您在问题中提到了Redis),二进制安全批量字符串的语法是“$ str_len \ r \ nnbinary_safe_string \ r \ n”。这里,字符串的长度是字符串表示的一部分。有了这个,您可以将任何内容保存为字符串,例如JPEG图像。 有关详细信息,请参阅Redis documentation

答案 2 :(得分:1)

Redis字符串是一个字节序列。 Redis中的字符串是二进制安全的,这意味着它们的已知长度不是由任何特殊的终止字符决定的。因此,您可以在一个字符串中存储最多512兆字节的任何内容。

https://www.tutorialspoint.com/redis/redis_data_types.htm

答案 3 :(得分:1)

Redis's documentation中“二进制安全字符串”的定义是这样。

Redis字符串是二进制安全的,这意味着Redis字符串可以包含任何类型的数据,例如JPEG图像或序列化的Ruby对象。

因此,二进制安全性相对于以字符'\ 0'结尾的c语言字符串。