上次我们分享 Redis 字符串的底层原理 ,今天我们再来看下 Redis List
列表的底层原理。
Redis List 命令
Redis List
列表支持的相关指令比较多,比如单个元素增加、删除操作,也支持多个元素范围操作。
Redis List
列表支持列表表头元素插入/弹出( LPUSH/LPOP ),也支持表尾元素插入/弹出( RPUSH/RPOP )。
另外 Redis List
列表还支持根据下标( LINDEX )获取元素,也支持根据根据下标覆盖相应的元素( LSET )。
除此之外,Redis List
列表还支持的范围操作,比如获取指定范围内全部元素( LRANGE ),移除指定范围内的全部元素( LTRIM )。
了解完的 Redis 相关指令,我们来看下 Redis List
列表底层实现方式,使用两种数据结构:
- 压缩列表(ziplist)
- 双向列表(linkedlist)
ps:本篇文章基于 Redis 3.2 开始进行讲解
双向列表(linkedlist)
上