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