Redis 列表(list)

11 篇文章 1 订阅
Redis 列表(List)
Redis列表是简单的字符串列表,按照插入的顺序排序,你可以添加一个元素到列表的头部(左边)或者尾部(右边)

blpop key1 [key2] timeout

描述:移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

返回值:如果列表为空,返回一个nil,否则,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的key,第二个元素是被弹出的值。

127.0.0.1:6379> lpush list 1
(integer) 1
127.0.0.1:6379> lpush list 2
(integer) 2
127.0.0.1:6379> blpop list 100
1) "list"
2) "2"
127.0.0.1:6379> lrange list 0 -1
1) "1"
127.0.0.1:6379> blpop list2 3
(nil)

brpop key1 [key2] timeout

描述:移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出的元素为止

返回值:假如在指定时间内没有任何元素被弹出,则返回一个nil和等待时长,反之,返回一个含有两个元素的列表,第一个元素是被弹出元素所属的key,第二哥元素是被弹出的值。

127.0.0.1:6379> lpush list1 1
(integer) 1
127.0.0.1:6379> lpush list 2
(integer) 2
127.0.0.1:6379> brpop list1 10
1) "list1"
2) "1"
127.0.0.1:6379> brpop list4 10
(nil)

brpoplpush source destination timeout

描述:从列表中取出最后一个元素,并插入到另一个列表的头部,如果列表没有元素会阻塞列表直到等待超时时间或发现可弹出元素为止

返回值:在指定时间内没有任何元素被弹出,则返回一个nil和等待时长,反之,返回一个含有两个元素的列表,第一个元素是被弹出的元素的值,第二个元素是等待时长

127.0.0.1:6379> lpush msg "hello world"
(integer) 1
127.0.0.1:6379> brpoplpush msg reciver 300
"hello world"
127.0.0.1:6379> llen msg
(integer) 0
127.0.0.1:6379> lrange reciver 0 0
1) "hello world"

lindex key index

描述:命令用于通过索引获取列表中的元素,你也可以使用负数下标,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素,以此类推

返回值:列表中下标为指定索引值的元素,如果指定索引值不在列表的区间范围内,返回nil

127.0.0.1:6379> lpush mylist "world"
(integer) 1
127.0.0.1:6379> lpush mylist "hello"
(integer) 2
127.0.0.1:6379> lindex mylist 0
"hello"
127.0.0.1:6379> lindex mylist 1
"world"
127.0.0.1:6379> lindex mylist 3
(nil)

linsert key before|after pivot value

描述:用于在列表的元素前或后插入元素,当指定元素不存在于列表中,不执行任何操作,当列表不存在时,被视为空列表,不执行任何操作,如果key不是列表类型,返回一个错误

返回值:如何命令执行成功,返回插入操作完成之后列表的长度,如果没有找到指定元素,返回-1,如果key不存在或为空列表,返回0

127.0.0.1:6379> rpush mylist "hello"
(integer) 1
127.0.0.1:6379> rpush mylist "world"
(integer) 2
127.0.0.1:6379> linsert mylist after "hello" "three"
(integer) 3
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "three"
3) "world"

llen key

描述:用于返回列表的长度,如果列表key不存在,则key被解释为一个空列表,返回0,如果key不是列表类型,返回一个错误

返回值:列表的长度

127.0.0.1:6379> rpush list1 "one"
(integer) 1
127.0.0.1:6379> rpush list1 "two"
(integer) 2
127.0.0.1:6379> llen list1
(integer) 2

lpop key

描述:用于移除并返回列表的第一个元素

返回值:列表的第一个元素,当列表key不存在时,返回nil

127.0.0.1:6379> rpush list1 "foo"
(integer) 1
127.0.0.1:6379> rpush list1 "bar"
(integer) 2
127.0.0.1:6379> lpop list1
"foo"
127.0.0.1:6379> lrange list1 0 -1
1) "bar"

lpush key value1 [value2]

描述:将一个或多个值插入到列表头部,如果key不存在,一个空列表会被创建并执行lpush操作,当key存在并不是列表类型时,返回一个错误

返回值:执行命令后,列表的长度

127.0.0.1:6379> lpush list1 "one"
(integer) 1
127.0.0.1:6379> lpush list1 "two" "three" "four"
(integer) 4
127.0.0.1:6379> lrange list1 0 -1
1) "four"
2) "three"
3) "two"
4) "one"

lrem key cout value

描述:根据参数count的值,移除列表中与参数value相等的元素
count的值可以是以下几种:

​ 1.count > 0,从表头开始像表尾搜索,移除与value相等的元素,数量为count

​ 2.count < 0,从表尾开始向表头搜索,排除与value相等的元素,数量为count的绝对值

​ 3.count = 0,移除表中所有与value相等的值

127.0.0.1:6379> rpush mylist hello hello foo hello hello
(integer) 5
127.0.0.1:6379> lrem mylist -2 "hello"
(integer) 2
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "hello"
3) "foo"
127.0.0.1:6379> rpush mylist hello hello foo hello hello
(integer) 8
127.0.0.1:6379> lrem mylist 0 hello
(integer) 6
127.0.0.1:6379> lrange mylist 0 -1
1) "foo"
2) "foo"

ltrim key start stop

描述:对一个列表进行修剪,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。

下标0表示列表的第一个元素,以1表示列表的第二个元素,以此类推,你也可以使用负数下标,以-1表示列表的最后一个元素,-2表示列表的倒数第二个元素

返回值:命令执行成功时,返回OK

127.0.0.1:6379> rpush mylist hello hello foo bar
(integer) 4
127.0.0.1:6379> ltrim mylist 1 -1
OK
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "foo"
3) "bar"

rpop key

描述:用于移除列表的最后一个元素,返回值为移除的元素

返回值:返回被移除的元素,当列表不存在时,返回nil

127.0.0.1:6379> rpush mylist one two three
(integer) 3
127.0.0.1:6379> rpop mylist
"three"
127.0.0.1:6379> lrange mylist 0 -1
1) "one"
2) "two"

rpoplpush source destination

描述:用于移除列表的最后一个元素,并将该元素添加到另一个列表返回

返回值:被弹出的元素

127.0.0.1:6379> rpush mylist hello foo bar
(integer) 3
127.0.0.1:6379> rpoplpush mylist otherlist
"bar"
127.0.0.1:6379> lrange mylist 0 -1
1) "hello"
2) "foo"
127.0.0.1:6379> lrange otherlist 0 -1
1) "bar"

rpushx key value

描述:用于将一个值插入到已存在的列表尾部(最右边),如果列表不存在,操作无效

返回值:列表的长度

127.0.0.1:6379> rpush mylist one
(integer) 1
127.0.0.1:6379> rpushx mylist two three
(integer) 3
127.0.0.1:6379> rpushx mylist1 one
(integer) 0
127.0.0.1:6379> lrange mylist 0 -1
1) "one"
2) "two"
3) "three"
127.0.0.1:6379> lrange mylist1 0 -1
(empty list or set)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值