Redis数据结构之list


Redis数据结构之list

常用命令

lpush\rpush ... 从左边/右边插入一个或多个值,类似推箱子。

lpop/rpop 从左边/右边吐出一个值。值在键在,值光键亡

rpoplpush 列表右边吐出一个值,插到列表左边

lrange 按照索引下标获得元素(从左到右)

lindex 按照索引下标获得元素(从左到右)

llen 获得列表长度

linsert before/after 的前面或后面插入

lrem 从左边删除n个value值(从左到右)

lset 将列表key下标为index的值替换为value

数据结构

List的数据结构为快速链表quickList

首先在列表元素较少的情况下会使用一块连续的内存存储,这个结构是ziplist,即是压缩列表,它将所有的元素紧挨在一起存储,分配的是一块连续的内存。

当数据量比较多的时候才会变成quickList,多个ziplist连在一起,组成了quickList(双向链表)