栈原则:lpush
lpop
:先进后出
rpop
:先进先出
127.0.0.1:6379> lpush l1 a b c d e f
(integer) 6
127.0.0.1:6379> lrange l1 0 -1
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> lpop l1
"f"
127.0.0.1:6379> lpop l1
"e"
127.0.0.1:6379> lpop l1
"d"
127.0.0.1:6379> lrange l1 0 -1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> rpop l1
"a"
支持数组:
127.0.0.1:6379> lrange l1 0 -1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> lrange l1 0 0
1) "c"
rpoplpush
弹出并入目的列表
127.0.0.1:6379> lrange l1 0 -1
1) "c"
2) "b"
127.0.0.1:6379> rpoplpush l1 l2
"b"
127.0.0.1:6379> lrange l1 0 -1
1) "c"
127.0.0.1:6379> lrange l2 0 -1
1) "b"
LINDEX key index
获取指定位置的元素
127.0.0.1:6379> lindex l1 0
"c"
lset key index value
设置指定位置元素的值
127.0.0.1:6379> lset l1 0 a
OK
127.0.0.1:6379> lrange l1 0 -1
1) "a"
llen
获取列表长度
127.0.0.1:6379> llen l1
(integer) 1
LREM key count value
删除元素。
当count=0时,删除所有等于value的元素;
当count<0时,从后往前删去指定count个元素;
当count>0时,从前往后删去指定count个元素;
127.0.0.1:6379> rpush lk c abc c ab 123 ab bj ab redis list
(integer) 10
127.0.0.1:6379> lrange lk 0 -1
1) "c"
2) "abc"
3) "c"
4) "ab"
5) "123"
6) "ab"
7) "bj"
8) "ab"
9) "redis"
10) "list"
127.0.0.1:6379> lrem lk 2 ab
(integer) 2
127.0.0.1:6379> lrange lk 0 -1
1) "c"
2) "abc"
3) "c"
4) "123"
5) "bj"
6) "ab"
7) "redis"
8) "list"
127.0.0.1:6379> lrem lk 2 ab
(integer) 1
127.0.0.1:6379> lrange lk 0 -1
1) "c"
2) "abc"
3) "c"
4) "123"
5) "bj"
6) "redis"
7) "list"
127.0.0.1:6379> rpush lk1 c abc c ab 123 ab bj ab redis list
(integer) 10
127.0.0.1:6379> lrange lk1 0 -1
1) "c"
2) "abc"
3) "c"
4) "ab"
5) "123"
6) "ab"
7) "bj"
8) "ab"
9) "redis"
10) "list"
127.0.0.1:6379> lrem lk1 -1 ab
(integer) 1
127.0.0.1:6379> lrange lk1 0 -1
1) "c"
2) "abc"
3) "c"
4) "ab"
5) "123"
6) "ab"
7) "bj"
8) "redis"
9) "list"
127.0.0.1:6379> lrem lk1 0 ab
(integer) 2
127.0.0.1:6379> lrange lk1 0 -1
1) "c"
2) "abc"
3) "c"
4) "123"
5) "bj"
6) "redis"
7) "list"
ltrim
去除指定范围外的元素
127.0.0.1:6379> lrange lk1 0 -1
1) "abc"
2) "123"
3) "bj"
4) "redis"
5) "list"
127.0.0.1:6379> ltrim lk1 0 -1
OK
127.0.0.1:6379> lrange lk1 0 -1
1) "abc"
2) "123"
3) "bj"
4) "redis"
5) "list"
127.0.0.1:6379> ltrim lk1 0 0
OK
127.0.0.1:6379> lrange lk1 0 -1
1) "abc"
ltrim
实际用处?
比如想看评论,每次有很多新数据,可以用ltrim
保留最近的评论数据。比如只想要前500条评论。
ltrim comment 0 499
linsert
在列表中某个存在的值(pivot)之前或后插入元素。
127.0.0.1:6379> lpush l3 a b d
(integer) 3
127.0.0.1:6379> lrange l3 0 -1
1) "d"
2) "b"
3) "a"
127.0.0.1:6379> linsert l3 before b c
(integer) 4
127.0.0.1:6379> lrange l3 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
阻塞:
b代表block。
blpop l1 0
中0代表无限制等待,5代表5秒。
127.0.0.1:6379> blpop l1 0
1) "l1"
2) "q"
(7.67s)
127.0.0.1:6379> blpop l1 5
(nil)
(5.04s)