添加
127.0.0.1:6379> lpush list one #将一或多值,加到list头部(左边)
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1
1) "three"
2) "two"
127.0.0.1:6379> rpush list right #将一或多值,加到list尾部(右边)
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "right"
移除
127.0.0.1:6379> lpop list #移除list的第一个元素
"three"
127.0.0.1:6379> rpop list #移除list的最后一个元素
"right"
127.0.0.1:6379> lrem list 1 one #移除指定个数的值
(integer) 1
获取值
127.0.0.1:6379> lindex list 0 #通过下标获取值
"two"
长度
127.0.0.1:6379> lpush list one
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> llen list #返回长度
(integer) 3
修剪,截断list
127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> ltrim list 1 2
OK
127.0.0.1:6379> lrange list 0 -1 #通过下标截取指定字符串,list只剩截取元素
1) "three"
2) "two"
rpoplpush : 移除最后一个元素,移到新列表中
127.0.0.1:6379> lpush list one
(integer) 1
127.0.0.1:6379> lpush list two
(integer) 2
127.0.0.1:6379> lpush list three
(integer) 3
127.0.0.1:6379> lpush list four
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> rpoplpush list otherlist
"one"
127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "three"
3) "two"
127.0.0.1:6379> lrange otherlist 0 -1
1) "one"
lset : 将列表指定下标的值替换为另一个值,更新
127.0.0.1:6379> lrange list 0 -1
1) "four"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> lset list 0 444
OK
127.0.0.1:6379> lrange list 0 -1
1) "444"
2) "three"
3) "two"
4) "one"
linsert : 将具体值插入到list某个具体值的前面或后面
127.0.0.1:6379> lrange list 0 -1
1) "444"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> linsert list before two 2222
(integer) 5
127.0.0.1:6379> lrange list 0 -1
1) "444"
2) "three"
3) "2222"
4) "two"
5) "one"
127.0.0.1:6379> linsert list after two 1111
(integer) 6
127.0.0.1:6379> lrange list 0 -1
1) "444"
2) "three"
3) "2222"
4) "two"
5) "1111"
6) "one"
小结:
实际是一个链表,before Node after
如果key不存在,创建新的链表
如果key存在,新增内容
如果移除所有值,链表不存在
在两边插入或改变值,效率最高,中间元素,效率低一点
队列(lpush rpop),栈(lpush lpop)