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)!