List列表
简介
redis的列表是一个字符链表,内部结构类似LinkedList。left,right都可以插入添加。如果键不存在,创建新的链表。如果存在,新增内容。如果值全移除,对应的键也就消失了。列表最多可以存储2^32-1元素(4294967295,每个列表可存储40多亿)
原理
底层是一个“快速链表”(quicklist)的结构,在列表元素较少时,使用连续的内存存储压缩列表ziplist。当数据量较多时,改成quicklist,也就是将多个ziplist使用双向指针串起来,以减少内存的碎片化。
命令
-
存取操作 push pop range
lpush:从左侧存入数据 -》 栈结构 lpop从最外侧弹出
rpush:从右侧存入数据 -》队列接口 lpop从最外侧弹出
lrange:范围内查看数据,使用方式 lrange key start end
image.png
2.对list本身的操作
llen 查看长度
lindex 获取某一个位置的值,下标从0开始
lrem 删除N个value的值
ltrim 截取某个范围的数据重新赋值给key 使用方式: ltrim key start start end(下角标从0开始)
linsert 插入数据到某个位置的前后 使用方式:linsert key before/after oldvalue newvalue
如果插入数据到头部,可以使用lpushx 使用方式lpushx list value
如果插入数据到尾部,可以使用rpushx 使用方式rpushx list value
lset 可以更该指定位置的值 使用方式: lset key index value
网友评论