四.1 Redis五大数据类型中列表结构的深度剖析与操作手册
目录
- 四.1 Redis五种数据类型里列表结构的全面剖析与运用指引
-
- list列表常用指令详解
- 2.1
lpush/rpush <key><value1><value2><value3> ....
从左侧/右侧插入一个或多个值 - 2.2
lrange <key><start><stop>
按索引下标获取元素(从左至右) - 2.3
lpop/rpop <key>
从左侧/右侧弹出一个值,对应列表对象的值会减少一个 - 2.4
rpoplpush <key1><key2>
从<key1>
列表右侧弹出一个值,插入到<key2>
列表左侧 - 2.5
lrange mylist 0 -1
0是左侧第一个,-1是右侧第一个,(0-1表示获取所有) - 2.6
lindex <key><index>
按索引下标获取元素(从左至右) - 2.7
llen <key>
获取列表长度 - 2.8
linsert <key> before <value><newvalue>
在<value>
前面插入<newvalue>
- 2.9
linsert <key> after <value><newvalue>
在<value>
后面插入<newvalue>
- 2.10
lrem <key><n><value>
从左侧删除n个value(从左至右) - 2.11
lset<key><index><value>
将列表key下标为index的值替换成value
-
- list对象的应用场景
-
- 结尾:
list:简而言之: list类型,存储多个数据,底层采用双向链表存储结构实现
list存储结构示意图:
双向链表示意图:
示意图说明:
1. Redis列表是简单的字符串列表,按插入顺序排序,可向列表头部(左侧)或尾部(右侧)添加元素。
2. 底层是双向链表,对两端操作性能高,通过索引下标操作中间节点性能较差。
3. 关于更多双向链表内容,可移步:🌟🌟🌟 双向循环带头节点链表 —— C语言_双向循环节点-
CSDN博客关于list列表的命令,Redis中有如下这些:
![]()
此处我们介绍一些list列表较为常用的命令,然后,由此类推,依据文档也能对其他命令上手学习运用 。
2. list列表常用指令详解
2.1 lpush/rpush <key><value1><value2><value3> ....
从左侧/右侧插入一个或多个值
注意:同时会创建一个list对象
127.0.0.1:6379> lpush k9 "a" "b" "c"
127.0.0.1:6379> rpush k10 "a" "b" "c"
2.2 lrange <key><start><stop>
按索引下标获取元素(从左至右)
注意:
lreage list 0 -1
即获取该list从开头到结尾的全部内容。
127.0.0.1:6379> lrange k10 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> lrange k10 0 1
2.3 lpop/rpop <key>
从左侧/右侧弹出一个值,对应列表对象的值会减少一个
127.0.0.1:6379> lpop k9
注意: 列表的头元素。 当
key
不存在时,返回nil
。
2.4 rpoplpush <key1><key2>
从<key1>
列表右侧弹出一个值,插入到<key2>
列表左侧
127.0.0.1:6379> rpoplpush k9 k10
2.5 lrange mylist 0 -1
0是左侧第一个,-1是右侧第一个,(0-1表示获取所有)
2.6 lindex <key><index>
按索引下标获取元素(从左至右)
127.0.0.1:6379> lindex k10 1
2.7 llen <key>
获取列表长度
127.0.0.1:6379> llen k10
2.8 linsert <key> before <value><newvalue>
在<value>
前面插入<newvalue>
127.0.0.1:6379> linsert k9 before "b" "tom"
2.9 linsert <key> after <value><newvalue>
在<value>
后面插入<newvalue>
127.0.0.1:6379> linsert k9 after "b" "jack"
2.10 lrem <key><n><value>
从左侧删除n个value(从左至右)
127.0.0.1:6379> lrem k9 1 "b"
2.11 lset<key><index><value>
将列表key下标为index的值替换成value
注意: 当
index
参数超出范围,或对一个空列表(key
不存在)进行 LSET 时,返回一个错误。
3. list对象的应用场景
redis中list对象应用于对有操作先后顺序的数据进行管控
-
系统通知,按时间顺序展示,将最新的通知列在前面。
-
其他,比如微信的最近转发,微博的最新关注等。
4. 结尾:
“在这最后的部分,我要向每一位读者表达我的感激。你们的关注与回应是我创作的动力来源,我从你们身上汲取了无穷的灵感与勇气。我会把你们的鼓励铭记于心,继续在其他领域拼搏。感谢你们,我们定会在某个时刻再度相逢。”
文章整理自互联网,只做测试使用。发布者:Lomu,转转请注明出处:https://www.it1024doc.com/12525.html