/RedisDataStructure

Redis2 和 Redis5数据结构

Primary LanguageC

Redis 数据结构

数据结构 说明
adlist 链表
dict 字典
intset 整数集合
quicklist 快表
robj Redis 对象
sds 字符串
ziplist 压缩列表
zskiplist 跳跃表

数据结构之间的关系

疑问

  • 在数据量比较小的情况下,Redis 中的很多数据类型,比如字典、有序集合等,都是通过多种数据结构来实现的,为什么会这样设计呢?用一种固定的数据结构来实现,不是更加简单吗?
    • redis的数据结构由多种数据结构来实现,主要是出于时间和空间的考虑,当数据量小的时候通过数组下标访问最快、占用内存最小,而压缩列表只是数组的升级版
    • 因为数组需要占用连续的内存空间,所以当数据量大的时候,就需要使用链表了,同时为了保证速度又需要和数组结合,也就有了散列表

参考资料