String

底层数据结构

  1. int
  2. embstr
  3. raw

设计逻辑

跟进数据是否为纯数字,以及字符串长度动态切换

List

底层数据结构

quickList(快表)

设计逻辑

结合了压缩列表和双向链表的优点,兼顾内存和操作效率

Hash

底层数据结构

  1. 压缩列表
  2. 哈希

设计逻辑

元素少且短小用压缩列表省内存
变大后用哈希表求速度

Set

底层数据结构

  1. intset
  2. hashtable

设计逻辑

元素全为整数且数量少时用整数集合
否则用哈希表

ZSet

底层数据结构

  1. 压缩列表
  2. 跳表
  3. 哈希

设计逻辑

元素少时用压缩列表,
元素多时用跳表和哈希