150  
查询码:00000604
Redis的List类型基础操作
作者: 倪嗣成 于 2020年07月24日 发布在分类 / 物联网组 / 边缘接入网关 下,并于 2020年07月24日 编辑

#############################################

所有的List命令以“L”开头

左插入:lpush

因为是从左边插入,第一个插入的数据,被推向左右边,然后,数据从左到右读取,所以,lrange遍历是three,two,one

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> lrange list

(error) ERR wrong number of arguments for 'lrange' command

127.0.0.1:6379> lrange list 0 -1

1) "three"

2) "two"

3) "one"

#############################################

右插入:rpush

使用右插入时,那么one就不是右边第一个了,right才是右边第一个

127.0.0.1:6379> rpush list right

(integer) 4

127.0.0.1:6379> lrange list 0 -1

1) "three"

2) "two"

3) "one"

4) "right"

#############################################

左边移除:lpop

127.0.0.1:6379> lrange list 0 -1

1) "three"

2) "two"

3) "one"

4) "right"

127.0.0.1:6379> lpop list

"three"

127.0.0.1:6379> lrange list 0 -1

1) "two"

2) "one"

3) "right"

#############################################

右移除:rpop

127.0.0.1:6379> lrange list 0 -1

1) "two"

2) "one"

3) "right"

127.0.0.1:6379> rpop list

"right"

127.0.0.1:6379> lrange list 0 -1

1) "two"

2) "one"

#############################################

获取某个list特定下标的值:lindex

127.0.0.1:6379> lrange list 0 -1

1) "two"

2) "one"

127.0.0.1:6379> lindex list 1

"one"

127.0.0.1:6379> lindex list 0

"two"

#############################################

获取list的长度:llen

127.0.0.1:6379> lrange list 0 -1

1) "two"

2) "one"

127.0.0.1:6379> llen list

(integer) 2

#############################################

删除特定的值:lrem

lrem list 2 two:代表移除list里面的两个two

127.0.0.1:6379> lrange list 0 -1

1) "two"

2) "two"

3) "one"

127.0.0.1:6379> lrem list 2 two

(integer) 2

127.0.0.1:6379> lrange list 0 -1

1) "one"

#############################################

截取list:ltrim。ltrim list 1 2:只保留序号为1和序号为2的元素。

127.0.0.1:6379> rpush list hello1

(integer) 1

127.0.0.1:6379> rpush list hello2

(integer) 2

127.0.0.1:6379> rpush list hello3

(integer) 3

127.0.0.1:6379> rpush list hello4

(integer) 4

127.0.0.1:6379> lrange list 0 -1

1) "hello1"

2) "hello2"

3) "hello3"

4) "hello4"

127.0.0.1:6379> ltrim list 1 2

OK

127.0.0.1:6379> lrange list 0 -1

1) "hello2"

2) "hello3"

#############################################

移除并压入:rpoplpush

rpoplpush list otherList:把list的最右边的元素:hello0弹出,并压入了otherList中

127.0.0.1:6379> lpush list hello0

(integer) 1

127.0.0.1:6379> lpush list hello1

(integer) 2

127.0.0.1:6379> lpush list hello2

(integer) 3

127.0.0.1:6379> lrange list 0 -1

1) "hello2"

2) "hello1"

3) "hello0"

127.0.0.1:6379> rpoplpush list otherList

"hello0"

127.0.0.1:6379> lrange list 0 -1

1) "hello2"

2) "hello1"

127.0.0.1:6379> lrange otherList 0 -1

1) "hello0"

#############################################

修改list的值:lset,将指定下标的值,修改成另一个值。如果不存在列表,或者不存在列表下标的值,就会报错。

127.0.0.1:6379> lpush list hello1

(integer) 1

127.0.0.1:6379> lrange list 0 -1

1) "hello1"

127.0.0.1:6379> lset list 0 value1

OK

127.0.0.1:6379> lrange list 0 -1

1) "value1"

#############################################

在特定位置插入值:linsert

127.0.0.1:6379> rpush list hello

(integer) 1

127.0.0.1:6379> rpush list world

(integer) 2

127.0.0.1:6379> lrange list 0 -1

1) "hello"

2) "world"

127.0.0.1:6379> linsert list before world other

(integer) 3

127.0.0.1:6379> lrange list 0 -1

1) "hello"

2) "other"

3) "world"

127.0.0.1:6379> linsert list after world new

(integer) 4

127.0.0.1:6379> lrange list 0 -1

1) "hello"

2) "other"

3) "world"

4) "new"



 推荐知识

 历史版本

修改日期 修改人 备注
2020-07-24 10:09:38[当前版本] 倪嗣成 创建版本

知识分享平台 -V 4.8.7 -wcp