插入与弹出
命令行 |
作用及返回值 |
lpush |
将一个或多个值 value 插入到列表 key 的表头如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表头, 如果 key 不存在,一个空列表会被创建并执行 LPUSH 操作。当 key 存在但不是列表类型时,返回一个错误。 |
lpop |
移除并返回列表 key 的头元素。返回值:列表的头元素。 当 key 不存在时,返回 nil 。 |
rpush |
将一个或多个值 value 插入到列表 key 的表尾(最右边)。如果有多个 value 值,那么各个 value 值按从左到右的顺序依次插入到表尾 |
rpop |
移除并返回列表 key 的尾元素。 |
lrange |
返回列表 key 中指定区间内的元素,区间以偏移量 start 和 stop 指定。详情 |
127.0.0.1:6379> lpush mylist a b c d e f
(integer) 6
127.0.0.1:6379> lrange mylist 0 -1 # 查询
1) "f"
2) "e"
3) "d"
4) "c"
5) "b"
6) "a"
127.0.0.1:6379> rpush mylist2 a b c d e f # 从右插入
(integer) 6
127.0.0.1:6379> lrange mylist2 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
127.0.0.1:6379> lpop mylist # 从左弹出
"f"
127.0.0.1:6379> lrange mylist 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
127.0.0.1:6379> rpop mylist
"a"
127.0.0.1:6379> lrange mylist 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
复制代码

获取长度和移除
命令 |
作用及返回值 |
lrem |
根据参数 count 的值,移除列表中与参数 value 相等的元素。count 的值可以是以下几种:count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count 。count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值。count = 0 : 移除表中所有与 value 相等的值。 |
llen |
返回列表 key 的长度。如果 key 不存在,则 key 被解释为一个空列表,返回 0 .如果 key 不是列表类型,返回一个错误。 |
lindex |
返回列表 key 中,下标为 index 的元素。下标(index)参数 start 和 stop 都以 0 为底,也就是说,以 0 表示列表的第一个元素,以 1 表示列表的第二个元素,以此类推。你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。如果 key 不是列表类型,返回一个错误。 |
127.0.0.1:6379> lpush mylist a a b c d e
(integer) 6
127.0.0.1:6379> lrange mylist 0 -1
1) "e"
2) "d"
3) "c"
4) "b"
5) "a"
6) "a"
127.0.0.1:6379> lrem mylist 1 b
(integer) 1
127.0.0.1:6379> lrange mylist 0 -1
1) "e"
2) "d"
3) "c"
4) "a"
5) "a"
127.0.0.1:6379> lrem mylist 2 a
(integer) 2
127.0.0.1:6379> lrange mylist 0 -1
1) "e"
2) "d"
3) "c"
127.0.0.1:6379> llen mylist
(integer) 3
127.0.0.1:6379> lindex mylist 1
"d"
127.0.0.1:6379>
复制代码
截取
命令 |
作用及返回值 |
ltrim |
对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。 |
127.0.0.1:6379> rpush mylist a b c d e f g
(integer) 7
127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
7) "g"
127.0.0.1:6379> ltrim mylist 2 5
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "c"
2) "d"
3) "e"
4) "f"
127.0.0.1:6379>
复制代码
组合命令
|
|
rpoplpush |
将列表 source 中的最后一个元素(尾元素)弹出,并返回给客户端。将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。 如果 source 不存在,值 nil 被返回,并且不执行其他动作。如果 source 和 destination 相同,则列表中的表尾元素被移动到表头,并返回该元素,可以把这种特殊情况视作列表的旋转(rotation)操作。 |
127.0.0.1:6379> rpush mylist a b c d e f
(integer) 6
127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
6) "f"
127.0.0.1:6379> rpoplpush mylist mylist2
"f"
127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
127.0.0.1:6379> lrange mylist2 0 -1
1) "f"
复制代码
判断和指定位置设值
|
|
exists |
若 key 存在,返回 1 ,否则返回 0 。 |
lset |
将列表 key 下标为 index 的元素的值设置为 value 。当 index 参数超出范围,或对一个空列表( key 不存在)进行 LSET 时,返回一个错误。 |
linsert |
将值 value 插入到列表 key 当中,位于值 pivot 之前或之后。当 pivot 不存在于列表 key 时,不执行任何操作。当 key 不存在时, key 被视为空列表,不执行任何操作。如果 key 不是列表类型,返回一个错误。 |
|
|
127.0.0.1:6379> exists myslit3
(integer) 0
127.0.0.1:6379> exists mylist
(integer) 1
127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "c"
4) "d"
5) "e"
127.0.0.1:6379> lset mylist 2 zz
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "a"
2) "b"
3) "zz"
4) "d"
5) "e"
127.0.0.1:6379> rpush mylist3 kk
(integer) 1
127.0.0.1:6379> lrange mylist3 0 0
1) "kk"
127.0.0.1:6379> linsert mylist3 before kk bbb
(integer) 2
127.0.0.1:6379> lrange mylist3 0 -1
1) "bbb"
2) "kk"
127.0.0.1:6379> linsert mylist3 after kk aaa
(integer) 3
127.0.0.1:6379> lrange mylist3 0 -1
1) "bbb"
2) "kk"
3) "aaa"
复制代码