迹忆客 计算机编程题库

题库 > Redis > Redis 数据类型 练习:87

Redis 数据类型

关于Redis字符串说法错误的是?
  • 获取Redis字符串的长度的时间复杂度为O(1)
  • Redis 底层是由C语言开发的,所以Redis字符串用的是C的字符串
  • Redis 每次追加字符串时都会检查空间是否够用,所以不会存在缓冲区溢出问题
  • Redis 字符串是动态的
正确答案是:B
正确率:48%

解析:

Redis虽然是用C语言写的,但却没有直接用C语言的字符串,而是自己实现了一套字符串。目的就是为了提升速度,提升性能。

Redis构建了一个叫做简单动态字符串(Simple Dynamic String),简称SDS

struct sdshdr{

//  记录已使用长度

int len;

// 记录空闲未使用的长度

int free;

// 字符数组

char[] buf;
};

在SDS结构中,字段len存储了当前字符串的长度。所以在获取Redis字符串的长度的时候,直接获取len的值。因此获取Redis字符串的长度的时间复杂度为O(1)。

SDS的最厉害最奇妙之处在于它的Dynamic。动态变化长度。

查看笔记

扫码一下
查看教程更方便