模型服务连接失败
Redis
分类
分布式系统
难度
未设置
来源数
1
更新时间
2026/03/29 00:57

答案

string内部是由SDS,简单动态字符串实现的,它相比于基于C语言的这种字符串,有几点好处: 1. 它是以len来判断是否结束,而不是用空字符,因此它不仅可以存储文本,还可以存储二进制数据,也就是收它可以存图片、视频、音频等等数据 2. 它获得字符串长度是O(1)的复杂度,因为它会记录自身的长度 3. 它的拼接不会造成缓冲区的溢出,因为它拼接的时候会判断SDS空间是否足够,如果不够的话会进行扩容 + 如果所需的 sds 长度小于 1 MB,那么最后的扩容是按照翻倍扩容来执行的,即 2 倍的newlen + 如果所需的 sds 长度超过 1 MB,那么最后的扩容长度应该是 newlen + 1MB。

相关题目(5)

分布式系统Redis
分布式系统并发Redis
分布式系统Redis
分布式系统并发Redis

元信息

审核状态: active
关联来源: 1

来源面经题(0)

这道题目前没有手动沉淀的面经题来源。

来源(1)

Java八股(数据库).md

knowledge_note
Question 91: String 的内部实现? Source answer: string内部是由SDS,简单动态字符串实现的,它相比于基于C语言的这种字符串,有几点好处: 1. 它是以len来判断是否结束,而不是用空字符,因此它不仅可以存储文本,还可以存储二进制数据,也就是收它可以存图片、视频、音频等等数据 2. 它获得字符串长度是O(1)的复杂度,因为它会记录自身的长度 3. 它的拼接不会造成缓冲区的溢出,因为它拼接的时候会判断SDS空间是否足够,如果不够的话会进行扩容 + 如果所需的 sds 长度小于 1 MB,那么最后的扩容是按照翻倍扩容来执行的,即 2 倍的newlen + 如果所需的 sds 长度超过 1 MB,那么最后的扩容长度应该是 newlen + 1MB。 Reviewed answer: Redis String 底层使用 SDS。其优势包括:可存储二进制数据、获取长度时间复杂度为 O(1)、拼接时可自动扩容避免缓冲区溢出;扩容策略通常是小于 1MB 时翻倍扩容,大于 1MB 时按 newlen+1MB 扩容。