redis的数据结构——存储list

在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表 一样,我们可以在其头部(left)和尾部(right)添加新的元素。在插入时,如果该键并不 存在,Redis将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移 除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是 4294967295。

redis的数据结构——存储list_第1张图片

1、两端添加

● lpush key values[value1 value2 ...]:在list头部添加元素

● rpush key values[value1 value2 ...]:在改list尾部添加元素

2、查看列表

● lrange key start end:获取链表中从start到end的元素的值,start、end从0开始计数;也可以为负数,若为-1则表示链表尾部的元素,-2表示倒数第二个,依次类推....

redis的数据结构——存储list_第2张图片

redis的数据结构——存储list_第3张图片

3、两端弹出

● lpop key:弹出头部元素,若key不存在则返回nil;

● rpop key:弹出尾部元素

4、获取列表中元素的个数

● llen key:返回指定key关联的链表的元素个数

5、扩展命令

● lpushx key value:仅当参数中指定的可以存在时,向关联的list的头部插入value,如果不存在,将不进行插入。

redis的数据结构——存储list_第4张图片

● rpushx key value:在list尾部插入

redis的数据结构——存储list_第5张图片

● lrem key count value:删除count个值为value的元素,如果count大于0,从头到尾遍历并删除count个值为value的元素,如果count小于0,则从尾到头遍历并删除,如果count等于0,则删除链表中所有等于value的元素。

1)从头删除两个b

redis的数据结构——存储list_第6张图片

2)从未删除两个a

redis的数据结构——存储list_第7张图片

3)删除全部a

redis的数据结构——存储list_第8张图片

● lset key index value:设置链表中的index的脚标的元素值,0代表的头元素,-1代表链表的微元素,操作链表的脚标不存在则抛异常。

redis的数据结构——存储list_第9张图片

● linsert key before|after pivot value:在pivot元素前或者后插入value这个元素

redis的数据结构——存储list_第10张图片

● rpoplpush resource destination:将链表中的尾部元素弹出并添加到头部。【循环操作】

你可能感兴趣的:(#,redis)