画布 1
value
  string
    int
      可以表达8b长的整型，换言之，过大的数字会转化为下述的其他类型。如果数字过大，incr等命令也会失效。
    embstr
      小于等于39个字节的字符串
    raw
      大于39个字节的字符串
  hash
    ziplist
      这是一种特定优化的数据结构，元素连续存储，内存开销更小，适合数据量小于阈值的场景。具体阈值为：哈希类型元素个数小于 hash-max-ziplist-entries（默认为512）且所有值都小于 hash-max-ziplist-value时。
    hashtable
      当 ziplist 失效时，Redis会切换到这个数据结构中。即使它内存开销更大，它的读写时间复杂度也依然是O(1)。
  list
    ziplist
当 Redis版本高于 3.2时，会使用quicklist（以ziplist为节点）代替传统的 ziplist。
      这是一种特定优化的数据结构，元素连续存储，内存开销更小，适合数据量小于阈值的场景。具体阈值为：哈希类型元素个数小于 list-max-ziplist-entries（默认为512）且所有值都小于 list-max-ziplist-value时。
    linkedlist
      当 ziplist 失效时，Redis会切换到这个数据结构中。即使它内存开销更大，它的读写时间复杂度也依然是O(N)为主。
    概要
  set
    intset
      如果集合的元素都是整数，且元素个数小于 set-max-intset-entries（默认为512），Redis会采用这种数据结构
    hashtable
      当 intset 失效时，Redis会切换到这个数据结构中。
  zset
    ziplist
      这是一种特定优化的数据结构，元素连续存储，内存开销更小，适合数据量小于阈值的场景。具体阈值为：哈希类型元素个数小于 zset-max-ziplist-entries（默认为128）且所有值都小于 zset-max-ziplist-value（默认为64 Byte）时。
    skiplist
      当 ziplist 失效时，Redis会切换到这个数据结构中。
  理解内存而能优化内存：All in memory