List
在 Redis 中,List 类型是按照插入顺序排序的字符串双向链表。和数据结构中的普通链表一样,我们可以在其头部 (left) 和尾部 (right) 添加新的元素。在插入时,如果该键并不存在,Redis 将为该键创建一个新的链表。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List 中可以包含的最大元素数量是 4294967295。
可理解为如下类型:
两端插入
lrange key start end:获取链表中从 start 到 end 的元素的值,start、end 可为负数,若为 -1 则表示链表尾部的元素,-2 则表示倒数第二个,依次类推…
lpush key value1 value2…:在指定的 key 所关联的 list 的头部插入所有的 values,如果该 key 不存在,该命令在插入的之前创建一个与该 key 关联的空链表,之后再向该链表的头部插入数据。插入成功,返回元素的个数。
rpush key value1、value2…:在该 list 的尾部添加元素
lpushx key value:仅当参数中指定的 key 存在时(如果与 key 管理的 list 中没有值时,则该 key 是不存在的)在指定的key所关联的 list 的头部插入 value。
rpushx key value:在该 list 的尾部添加元素
两端弹出
lpop key:返回并弹出指定的 key 关联的链表中的第一个元素,即头部元素。
rpop key:从尾部弹出元素。
rpoplpush resource destination:将链表中的尾部元素弹出并添加到头部
获取列表中元素个数
llen key:返回指定的 key 关联的链表中的元素的数量。
其他命令(了解)
lset key index value:设置链表中的 index 的脚标的元素值,0 代表链表的头元 素,-1 代表链表的尾元素。
lrem key count value:删除 count 个值为 value 的元素,如果 count 大于 0,从头向尾遍历并删除 count 个值为 value 的元素,如果 count 小于 0,则从尾向头遍历并删除。如果 count 等于 0,则删除链表中所有等于 value 的元素。
linsert key before|after pivot value:在 pivot 元素前或者后插入 value 这个元素。