ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis 04 List

2022-04-17 17:01:34  阅读:189  来源: 互联网

标签:127.0 04 0.1 List Redis two three 6379 list


在 Redis 里面,可以把 List 当成队列阻塞队列使用。

list 实际是一个链表,左右都可以插入值。

如果 key 不存在,创建新的链表。

如果移除了所有元素,空链表也代表不存在。

在两边插入或者改动值,效率最高;操作中间元素,效率相对低一些。

插入

从左插入

lpush

将一个值或者多个值,插入列表的头部,即从左插入。

127.0.0.1:6379> lpush list one # 从左插入一个值
(integer) 1
127.0.0.1:6379> lpush list two three # 从左插入多个值
(integer) 3
127.0.0.1:6379> lrange list 0 -1 # -1 即表示查询所有元素
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1 # 查询指定下标范围元素
1) "three"
2) "two"

先进的排在后面,后进的排在前面。

从右插入

rpush

将一个值或者多个值,插入列表的尾部,即从右插入。

127.0.0.1:6379> rpush list four # 从右插入一个值
(integer) 4
127.0.0.1:6379> rpush list five six # 从右插入多个值
(integer) 6
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "four"
5) "five"
6) "six"

先进的排在前面,后进的排在后面。

指定元素前后插入值

linsert

127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> linsert list before two three # two 之前插入 three
(integer) 3
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> linsert list after two three # two 之后插入 three
(integer) 4
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "three"
4) "one"

移除

从左移除

lpop

127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "two"
3) "one"
4) "four"
127.0.0.1:6379> lpop list # 移除最左边的元素
"three"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
3) "four"

从右移除

rpop

127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
3) "four"
127.0.0.1:6379> rpop list # 移除最右边的元素
"four"
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"

移除指定元素

lrem

127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "three"
3) "two"
4) "one"
127.0.0.1:6379> lrem list 1 one # 移除一个指定元素
(integer) 1
127.0.0.1:6379> lrange list 0 -1
1) "three"
2) "three"
3) "two"
127.0.0.1:6379> lrem list 2 three # 移除两个指定元素
(integer) 2
127.0.0.1:6379> lrange list 0 -1
1) "two"

查看

查看列表

lrange

127.0.0.1:6379> lrange list 0 -1 # -1 即表示查询所有元素
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> lrange list 0 1 # 查询指定下标范围元素
1) "three"
2) "two"

通过下标获取元素

lindex

127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> lindex list 0 # 下标从 0 开始
"two"
127.0.0.1:6379> lindex list 1
"one"

Redis 显示的下标是从 1 开始的,实际的下标还是从 0 开始的。

获取列表长度

llen

127.0.0.1:6379> llen list
(integer) 2

查看列表是否存在

exists

127.0.0.1:6379> exists list
(integer) 1
127.0.0.1:6379> exists list3
(integer) 0

截取

截取指定下标范围的元素

ltrim

127.0.0.1:6379> lrange list 0 -1
1) "one"
2) "two"
3) "three"
4) "four"
127.0.0.1:6379> ltrim list 1 2 # 截取下标 1 到 2 的元素
OK
127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "three"

移动

移除列表最后一个元素并移动到新列表中

rpoplpush

127.0.0.1:6379> lrange list 0 -1
1) "two"
2) "three"
127.0.0.1:6379> rpoplpush list list2 # 移除列表最后一个元素并移动到新列表中
"three"
127.0.0.1:6379> lrange list 0 -1 # 原来的列表
1) "two"
127.0.0.1:6379> lrange list2 0 -1 # 新的列表
1) "three"

赋值

指定下标赋值

lset

127.0.0.1:6379> lrange list 0 -1
1) "two"
127.0.0.1:6379> lset list 0 one # 赋值列表指定下标元素
OK
127.0.0.1:6379> lrange list 0 -1
1) "one"

如果列表不存在或者列表指定下标不存在,赋值失败。

标签:127.0,04,0.1,List,Redis,two,three,6379,list
来源: https://www.cnblogs.com/codesail/p/16156332.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有