gpt4 book ai didi

file - 二进制安全redis

转载 作者:IT王子 更新时间:2023-10-29 06:10:15 28 4
gpt4 key购买 nike

在 Redis 协议(protocol)规范中,它提到:

“状态回复不是二进制安全的,不能包含换行符。”字符串/文件是二进制安全的是什么意思?为什么 Redis 中的状态回复不能是二进制安全的?

最佳答案

二进制安全字符串解析器考虑了字符串中单个字符中所有可能的值 0 - 255,该字符串可能不是空终止的(否则它的长度是已知的)。如果字符串解析器不是二进制安全的,则它需要一个空终止字符串(字符串末尾处的二进制 0)。

通常,字符串解析器不是二进制安全的。许多解析期望正常的可打印字符和字符串末尾的 0。如果这种字符串末尾没有0,很容易出现段错误。

二进制安全解析器可能正在解析任意数据(可能是文本或其他内容)。

编辑:

“字符串/文件是二进制安全的是什么意思?”

  • 二进制安全的是文本解析器,而不是字符串/文件本身。但是,如果一个字符串被称为二进制安全的,我会怀疑这意味着它是一个具有标准 ascii 字符的以 null 结尾的字符串。

“为什么 Redis 中的状态回复不能是二进制安全的?”

  • 因为检查回复的解析器实现在 \r\n 的第一个实例处结束。这就是解析器计算字符串长度的方式。因此,如果它在回复结束之前找到 \r\n,它会停止解析并忽略之后的所有内容。

除非状态回复需要发送二进制数据,否则它们没有必要是二进制安全的。

关于file - 二进制安全redis,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17710326/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com