IIWAB redis数据类型的底层实现 - IIWAB

redis数据类型的底层实现

IIWAB 10月前 ⋅ 252 阅读
  1. 字符串

int:8个字节的长整型。

embstr:小于等于44个字节的字符串。

raw:大于44个字节的字符串。

Redis会根据当前值的类型和长度决定使用哪种内部编码实现。

  1. 哈希(ziplist(压缩列表)+hashtable(哈希表))

ziplist(压缩列表):元素个数<512,值长度<64字节,否则,hashtable(哈希表)

ziplist内存连续紧凑,时间换空间,适合内存中数据少的情况

hashtable:读写时间复杂度为O(1)

3.列表(ziplist(压缩列表)+linkedlist(链表))

Ziplist:元素个数<512,值长度<64字节,否则,inkedlist(链表)

  1. 集合(intset(整数集合)+hashtable(哈希表))

Intset:元素个数小于512,否则,hashtable

Redis会选用intset来作为集合的内部实现,从而减少内存的使用。

  1. 有序集合(ziplist(压缩列表)+skiplist(跳跃表))

ziplist:元素个数<128,元素值长度<64字节,否则,skiplist


全部评论: 0

    我有话说: