在redis中,可以把List 整成栈、列队、阻塞列队。

1、lpush key value [value ··· ]

将一个值或多个值插入到列表的头部,返回的是当前列表值的数量。

提示:每次插入都是从头部插入

Redis - List 列表_消息队列

2、rpush key value [value ··· ···]

在列表的尾部(末尾)插入。

Redis - List 列表_链表_02

3、lrange

获取集合中的全部元素,或某些元素。

Redis - List 列表_链表_03

4、lpop、rpop

从列表左边弹出一个元素、从列表右边弹出一个元素,返回的都是被弹出来的元素。

从左边弹出一个元素

Redis - List 列表_链表_04

 从右边弹出一个元素

Redis - List 列表_redis_05

 

5、lindex  key  index

根据下标获取某个key

Redis - List 列表_消息队列_06

 

6、llen  key

获取列表的长度

Redis - List 列表_redis_07

 7、lrem  key  count  value 

删除列表中的某个key,可以指定key的数量,就是要删除几个key,对应的value值

Redis - List 列表_redis_08

 

8、rpoplpush source destination

把一个集合中的末尾元素,剪切到另一个集合 的头部。

提示:如果destination 这个集合没有,会创建一个,然后把剪切的元素放到新创建的集合中。

Redis - List 列表_redis_09

9、lset key  index value

根据下标,来修改一个列表中的值

Redis - List 列表_消息队列_10

 

10、linsert  key before | after  sourceValue  value

向一个值的前边或后边插入一个值

Redis - List 列表_消息队列_11

总结:

· 列表实际上是一个链表,在right和left都可以插入。

· 在两边插入或者 改动值时,效率最高的。如果中间元素,效率会低一些。

· 可以做消息队列、栈。