1.常用命令   命令以 l  开头

#####################  lpush 左边添加元素
my-redis:0>lpush list one
1

my-redis:0>lpush list two
2

my-redis:0>lpush list three
3

#####################  lrange  查看list元素  可以指定下标  0 -1(代表所有)
my-redis:0>lrange list 0 -1
three
two
one

#####################  rpush 右边添加元素
my-redis:0>rpush list test
4

my-redis:0>lrange list 0 -1
three
two
one
test


####################  lpop 移除左边第一个元素
my-redis:0>lpop list
three

####################  rpop  移除右边第一个元素
my-redis:0>rpop list
test

my-redis:0>lrange list 0 -1
two
one

####################  lindex  查看某个下标的值
my-redis:0>lindex list  0
two

my-redis:0>lindex list  1
one

###################  llen 查看队列的长度 
my-redis:0>llen list
2

my-redis:0>lrange list 0 -1
two
one

#################   lrem  key  数量  元素值  移除队列中多少个 值为xxx的元素
my-redis:0>lrem list 1 one
1

my-redis:0>lrange list 0 -1
two

my-redis:0>flushdb
OK

my-redis:0>lpush mylist huang
1

my-redis:0>lpush mylist huang1
2

my-redis:0>lpush mylist huang2
3

my-redis:0>lpush mylist huang3
4

my-redis:0>lpush mylist huang4
5

my-redis:0>lrange mylist 0 -1
huang4
huang3
huang2
huang1
huang

###################   ltrim key  下标 下标   剪辑队列 保留 某个下标到某个下标的值,其他移除
my-redis:0>ltrim mylist  1 2
OK

my-redis:0>lrange mylist 0 -1
huang3
huang2


my-redis:0>flushdb
OK

my-redis:0>lpush list 0 hello
2

my-redis:0>lrange list 0 -1
hello
0

my-redis:0>flushdb
OK

my-redis:0>lrange list hello
ERR wrong number of arguments for 'lrange' command

my-redis:0>lpush list hello
1

my-redis:0>lpush list hello1
2

my-redis:0>lpush list hello2
3

my-redis:0>lrange list 0 -1
hello2
hello1
hello

########################   lpoplpush  原来的队列  新的队列 移除列表的最后一个元素,将他移动到新的列表中!
my-redis:0>rpoplpush list list2
hello

my-redis:0>lrange list2 0 -1
hello

my-redis:0>lrange list 0 -1
hello2
hello1

########################  lset  队列  下标 新的值    将列表中指定下标的值替换为另外一个值,更新操作,不存在则报错
my-redis:0>lset list 0 test
OK

my-redis:0>lrange list 0 -1
test
hello1

my-redis:0>flushdb
OK

my-redis:0>rpush  list  hello
1

my-redis:0>rpush  list  word
2

#############################  linsert  队列  before/after  值   插入的值

将某个具体的value插入到列把你中某个元素的前面或者后面!

my-redis:0>linsert list before  word other
3

my-redis:0>lrange list 0 -1
hello
other
word

my-redis:0>linsert list after  word other
4

my-redis:0>lrange list 0 -1
hello
other
word
other

my-redis:0>

2.小结

1.他实际上是一个链表,before Node after , left,right 都可以插入值

2.如果key 不存在,创建新的链表

3.如果key存在,新增内容

4.在两边插入或者改动值,效率最高! 中间元素,相对来说效率会低一点~

 

应用场景:消息排队!消息队列 (Lpush Rpop), 栈( Lpush Lpop)!