Login
网站首页 > 文章中心 > 其它

Redis之列表_lists)类型命令

作者:小编 更新时间:2023-08-12 18:27:16 浏览量:366人看过

Redis之列表_lists)类型命令-图1

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

使用场景 : 消息队列,时间轴

lpush : 将一个或多个值插入列表头部,如果key是其他类型报错,成功返回列表数量,如果key不存在,先创建一个空列表

12⑦0.0.1:6379> set yhq 123
OK
12⑦0.0.1:6379> lpush yhq name age sex
(error) WRONGTYPE Operation against a key holding the wrong kind of value
12⑦0.0.1:6379> lpush qhh name age sex
(integer) 3

lrange : 获取指定范围的值,0开始-1结束(start超出返回空列表,包含end,end超出返回所有)


lpushx : 插入已存在的列表头部,不存在时无效返回0,成功返回列表长度

12⑦0.0.1:6379> lpushx yhqqhh id
(integer) 0
12⑦0.0.1:6379> lpushx qhh id
(integer) 4
12⑦0.0.1:6379> lrange qhh 0 -1
1) "id"
2) "sex"
3) "age"
4) "name"

rpush :?将一个或多个值插入列表尾部,如果key是其他类型报错,成功返回列表数量

12⑦0.0.1:6379> rpush qhh class curr
(integer) 6
12⑦0.0.1:6379> lrange qhh 0 -1
1) "id"
2) "sex"
3) "age"
4) "name"
5) "class"
6) "curr"

rpushx: 插入已存在的列表尾部,不存在时无效返回0,成功返回列表长度

?

12⑦0.0.1:6379> rpushx q course
(integer) 0
12⑦0.0.1:6379> rpushx qhh course
(integer) 7
12⑦0.0.1:6379> lrange qhh 0 -1
1) "id"
2) "sex"
3) "age"
4) "name"
5) "class"
6) "curr"
7) "course"

llen :? 返回列表长度,不存在返回0,不是列表类型报错

12⑦0.0.1:6379> llen yhq
(error) WRONGTYPE Operation against a key holding the wrong kind of value
12⑦0.0.1:6379> llen qh
(integer) 0
12⑦0.0.1:6379> llen qhh
(integer) 7

lpop : 移除列表中第一个元素并返回,key不存在返回nil

12⑦0.0.1:6379> lrange qhh 0 -1
1) "id"
2) "sex"
3) "age"
4) "name"
5) "class"
6) "curr"
7) "course"
12⑦0.0.1:6379> lpop qhh
"id"
12⑦0.0.1:6379> lrange qhh 0 -1
1) "sex"
2) "age"
3) "name"
4) "class"
5) "curr"
6) "course"

rpop : 移除列表最后一个元素并返回,key不存在返回nil

12⑦0.0.1:6379> lrange qhh 0 -1
1) "sex"
2) "age"
3) "name"
4) "class"
5) "curr"
6) "course"
12⑦0.0.1:6379> rpop qhh
"course"
12⑦0.0.1:6379> lrange qhh 0 -1
1) "sex"
2) "age"
3) "name"
4) "class"
5) "curr"

rpoplpush : 移除列表最后一个元素,插入到另一个列表头部,返回移除的元素(如果第一个列表为空,返回nil,不执行操作)

12⑦0.0.1:6379> lrange qhh 0 -1
1) "sex"
2) "age"
3) "name"
4) "class"
5) "curr"
12⑦0.0.1:6379> lrange yhqqhh 0 -1
1) "name"
12⑦0.0.1:6379> rpoplpush qhh yhqqhh
"curr"
12⑦0.0.1:6379> lrange yhqqhh 0 -1
1) "curr"
2) "name"

0,从头部开始,移除count个和val相等的值,<0从尾部移除count个,=0全部),返回被移除的数量,列表不存在返回0

12⑦0.0.1:6379> lrange qhh 0 -1
1) "age"
2) "name"
3) "name"
4) "name"
5) "name"
6) "sex"
7) "age"
8) "name"
9) "class"
12⑦0.0.1:6379> lrem qhh 3 name
(integer) 3
12⑦0.0.1:6379> lrange qhh 0 -1
1) "age"
2) "name"
3) "sex"
4) "age"
5) "name"
6) "class"

end,结果会是列表变成空表(即该 key 会被移除). 如果 end 超过列表尾部,Redis 会将其当作列表的最后一个元素.)

12⑦0.0.1:6379> lrange qhh 0 -1
1) "age"
2) "name"
3) "sex"
4) "age"
5) "name"
6) "class"
12⑦0.0.1:6379> ltrim qhh 0 2
OK
12⑦0.0.1:6379> lrange qhh 0 -1
1) "age"
2) "name"
3) "sex"

lindex : 返回索引的值0开始 -1结束(不是列表返回错误,超出长度返回nil)

12⑦0.0.1:6379> lrange qhh 0 -1
1) "age"
2) "name"
3) "sex"
12⑦0.0.1:6379> lindex qhh -2
"name"

linsert : 在列表某个元素(before/after)插入val,成功返回列表长度,key没有或者列表不存在返回0,元素不存在返回-1,找到一个元素就ok,不会插入多个

12⑦0.0.1:6379> lrange qhh 0 -1
1) "age"
2) "name"
3) "hellow"
4) "sex"
12⑦0.0.1:6379> lpush qhh name
(integer) 5
12⑦0.0.1:6379> lrange qhh 0 -1
1) "name"
2) "age"
3) "name"
4) "hellow"
5) "sex"
12⑦0.0.1:6379> linsert qhh after name word
(integer) 6
12⑦0.0.1:6379> lrange qhh 0 -1
1) "name"
2) "word"
3) "age"
4) "name"
5) "hellow"
6) "sex"
12⑦0.0.1:6379> linsert qh after name 123
(integer) 0
12⑦0.0.1:6379> linsert qhh after name1 123
(integer) -1

?lset : 通过索引修改val,成功返回ok,超出索引范围或者空列表返回错误

12⑦0.0.1:6379> lrange qhh 0 -1
1) "name"
2) "word"
3) "age"
4) "name"
5) "hellow"
6) "sex"
12⑦0.0.1:6379> lset qhh 0 666
OK
12⑦0.0.1:6379> lset qhh 10 666
(error) ERR index out of range
12⑦0.0.1:6379> lrange qhh 0 -1
1) "666"
2) "word"
3) "age"
4) "name"
5) "hellow"
6) "sex"

blpop/brpop : 移除列表第一个/最后一个元素,如果阻塞(没有元素)等待time秒后返回nil,成功返回两个元素,一个key,一个移除元素(先到先得原则)

blpop/brpop : 移除列表第一个/最后一个元素,如果阻塞(没有元素)等待time秒后返回nil,成功返回两个元素,一个key,一个移除元素(先到先得原则)

blpop/brpop : 移除列表第一个/最后一个元素,如果阻塞(没有元素)等待time秒后返回nil,成功返回两个元素,一个key,一个移除元素(先到先得原则)

12⑦0.0.1:6379> lrange qhh 0 -1
1) "666"
2) "word"
3) "age"
4) "name"
5) "hellow"
6) "sex"
12⑦0.0.1:6379> blpop qhh 10
1) "qhh"
2) "666"
12⑦0.0.1:6379> blpop list 10
(nil)
(10.02s)
12⑦0.0.1:6379> lrange qhh 0 -1
1) "word"
2) "age"
3) "name"
4) "hellow"
5) "sex"

brpoplpush : 从一个列表移到另一个列表,没有等待time秒

12⑦0.0.1:6379> brpoplpush qhh list 3
"sex"
12⑦0.0.1:6379> lrange qhh 0 -1
1) "word"
2) "age"
3) "name"
4) "hellow"
12⑦0.0.1:6379> lrange list 0 -1
1) "sex"

以上就是土嘎嘎小编为大家整理的Redis之列表_lists)类型命令相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章