【346、Redis 各个数据类型的底层数据结构】

30 阅读1分钟

Redis 支持多种数据类型,每种数据类型都有不同的底层数据结构:

  1. String(字符串):底层数据结构是简单动态字符串(SDS),它是一个封装了字符数组和长度的结构体,具有快速修改长度和二进制安全等特性。
  2. Hash(哈希表):底层数据结构是字典(dict),它是一个使用哈希表实现的无序键值对容器。
  3. List(列表):底层数据结构是双端链表(linked list),它是一种基本的数据结构,可以快速地进行插入、删除和遍历操作。
  4. Set(集合):底层数据结构是字典(dict)和整数数组(intset)的混合体。当集合中的元素个数较少或元素全是整数时,底层数据结构为整数数组,否则为字典。
  5. Sorted Set(有序集合):底层数据结构是跳跃表(skip list)和字典(dict)的混合体。跳跃表是一种有序链表,可以在 log(N) 的时间复杂度内进行插入、删除和查找操作。

除了以上几种数据类型,Redis 还支持 Bitmaps、HyperLogLog、Streams 等其他数据类型,它们各自有不同的底层数据结构。