目录
- List列表简介
- 二. 增加元素操作相关命令
- 2.1 左侧,右侧插入元素.(lpush rpush)
- 2.2 在指定元素前/后插入元素(linsert)
- 三. 查询元素操作相关命令
- 3.1 根据下标获取元素.( lrange)
- 3.2 获取指定下标的元素( lindex )
- 3.3 获取列表长度( llen)
- 四. 删除元素操作相关命令
- 4.1 左侧, 右侧删除元素.(lpop rpop)
- 4.2 删除列表指定个数的指定值( lrem )
- 4.3 修剪列表,保存指定范围内的元素(ltrim)
- 五. 修改元素操作相关命令.
- 5.1 根据下标修改元素值(lset)
- 六. 阻塞命令.
- 6.1 blpop与brpop
- 七. 命令总结.
List列表简介
-
在redis中, 列表(List) 相当于是一个数组或顺序表, List列表是一个
由字符串组成的双向链表
, 这意味着可以将字符串元素添加到列表的头部或者尾部'
-
List列表对于
插入元素的效率较高, 查询元素的效率比较低
. -
Redis中的List列表, 底层的存储结构是使用的
QuickList(快速链表)
.- ziplist(压缩列表): 当列表的元素个数小于list-max-ziplist-entries配置(默认512个),同时列表中每个元素的长度都小于list-max-ziplist-value配置(默认64字节)时,Redis会选用ziplist来作为列表的内部编码实现,以减少内存消耗。
- linkedlist(链表): 当列表中的元素个数较多, 无法分配连续的空间存储, 则会使用linkedlist来存储元素.
- QuickList(快速链表)是ziplist(压缩列表)和linkedlist结合出来的产物, 即链表中的每个节点使用ziplist来存储.
二. 增加元素操作相关命令
2.1 左侧,右侧插入元素.(lpush rpush)
从左侧插入元素 :
每次插入元素都放在列表的最左边
- 从左侧插入元素命令基本格式:
LPUSH key element [element ...]
从右侧插入元素 :
每次插入元素都放在列表的最右边
- 从右侧插入元素命令基本格式:
RPUSH key element [element ...]
演示命令的使用
:
2.2 在指定元素前/后插入元素(linsert)
- 命令的基本格式:
LINSERT key <\BEFORE | AFTER> pivot element
演示命令的使用
:
三. 查询元素操作相关命令
3.1 根据下标获取元素.( lrange)
- 命令的基本格式:
LRANGE key start stop
演示命令的使用
:
3.2 获取指定下标的元素( lindex )
- 命令的基本格式:
LINDEX key index
演示命令的使用
:
3.3 获取列表长度( llen)
- 命令的基本格式:
LLEN key
演示命令的使用
:
四. 删除元素操作相关命令
4.1 左侧, 右侧删除元素.(lpop rpop)
从左侧删除元素 :
每次删除最左侧的 n 个 value 值
- 从左侧删除元素命令的基本格式:
LPOP key [count]
从右侧删除元素 :
每次删除最右侧的 n 个 value 值
- 从右侧删除元素命令的基本格式:
RPOP key [count]
演示命令的使用
:
4.2 删除列表指定个数的指定值( lrem )
- 命令的基本格式:
LREM key count element
演示命令的使用
:
4.3 修剪列表,保存指定范围内的元素(ltrim)
- 命令的基本格式:
LTRIM key start stop
演示命令的使用
:
五. 修改元素操作相关命令.
5.1 根据下标修改元素值(lset)
- 命令的基本格式:
LSET key index element
演示命令的使用
:
六. 阻塞命令.
6.1 blpop与brpop
- BRPOP和BLPOP是两个重要的阻塞式列表操作命令,它们常
用于实现消息队列的功能。
- 当给定列表内没有任何元素可供弹出的时候,连接将被BRPOP/BLPOP命令阻塞,直到等待超时或发现可弹出元素为止。
- 命令的基本格式:
BLPOP key [key ...] timeout
BRPOP key [key ...] timeout