什么是二进制安全字符串?它只是一个长度附加在字符串本身的字符串吗?为什么他们被称为二元安全呢?不确定我应该标记redis,但在阅读redis doc时阅读这个术语。
答案 0 :(得分:5)
二进制安全字符串是可以包含任何字符(字节)的字符串。
例如,许多编程语言使用0x00字符作为字符串结束标记,因此从这个意义上说,二进制安全字符串可以包含这些字符串。
答案 1 :(得分:1)
二进制安全字符串不对其长度或终止字符做出任何假设。例如,在Redis中(因为您在问题中提到了Redis),二进制安全批量字符串的语法是“$ str_len \ r \ nnbinary_safe_string \ r \ n”。这里,字符串的长度是字符串表示的一部分。有了这个,您可以将任何内容保存为字符串,例如JPEG图像。 有关详细信息,请参阅Redis documentation。
答案 2 :(得分:1)
Redis字符串是一个字节序列。 Redis中的字符串是二进制安全的,这意味着它们的已知长度不是由任何特殊的终止字符决定的。因此,您可以在一个字符串中存储最多512兆字节的任何内容。
答案 3 :(得分:1)
Redis's documentation中“二进制安全字符串”的定义是这样。
Redis字符串是二进制安全的,这意味着Redis字符串可以包含任何类型的数据,例如JPEG图像或序列化的Ruby对象。
因此,二进制安全性相对于以字符'\ 0'结尾的c语言字符串。