SDS 和 C 字符串的区别.pdfVIP

  • 10
  • 0
  • 约7.28千字
  • 约 13页
  • 2017-06-09 发布于湖北
  • 举报
SDS 与 C 字符串的区别 根据传统, C 语⾔使⽤长度为 N+1 的字符数组来表⽰长度为 N 的字符串, 并且字符 数组的最后⼀个元素总是 字符 \0 。 ⽐如说, 图 2-3 就展⽰了⼀个值为 Redis 的 C 字符串: C 语⾔使⽤的这种简单的字符串表⽰⽅式, 并不能满⾜ Redis 对字符串在安全性、效 率、以及功能⽅⾯的要求, 本节接下来的内容将详细对⽐ C 字符串和 SDS 之间的区 别, 并说明 SDS ⽐ C 字符串更适⽤于 Redis 的原因。 常数复杂度获取字符串长度 因为 C 字符串并不记录⾃⾝的长度信息, 所以为了获取⼀个 C 字符串的长度, 程序 必须遍历整个字符串, 对遇到的每个字符进⾏计数, 直到遇到代表字符串结尾的 字符为⽌, 这个操作的复杂度为 。 举个例⼦, 图 2-4 展⽰了程序计算⼀个 C 字符串长度的过程。 和 C 字符串不同, 因为 SDS 在 len 属性中记录了 SDS 本⾝的长度, 所以获取⼀个 SDS 长度的复杂度仅为 。 举个例⼦, 对于图 2-5 所⽰的 SDS 来说, 程序只要访问 SDS 的 len 属性, 就可以 ⽴即知道 SDS

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档