0
点赞
收藏
分享

微信扫一扫

Redis7 10大数据类型(Redis列表)

一、常用

Redis7 10大数据类型(Redis列表)_分页

二、单key多value

三、简单说明

一个双端链表的结构,容量是2的32次方减1个元素,大概40多亿,主要功能有push/pop等,一般用在栈、队列、消息队列等场景。
left、right都可以插入添加;
如果键不存在,创建新的链表;
如果键已存在,新增内容;
如果值全移除,对应的键也就消失了。

它的底层实际是个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差。

Redis7 10大数据类型(Redis列表)_分页_02

四、案例

1、lpush/rpush/lrange

2、lpop/rpop

Redis7 10大数据类型(Redis列表)_链表_03

3、lindex按照所以下表获得元素(从上到下)

通过索引获取列表中的元素 lindex key index

Redis7 10大数据类型(Redis列表)_链表_04

4、llen

获取列表中元素的个数

5、lrem key 数字N 给定值v1(删除N个值等于v1的元素)

* 从left往right删除2个值等于v1的元素,返回的值为实际删除的数量
 *  LREM list3 0 值,表示删除全部给定的值。零个就是全部值

Redis7 10大数据类型(Redis列表)_链表_05

6、ltrim key 开始index 结束index(截取指定范围的值再赋值给key)

ltrim:截取指定索引区间的元素,格式是ltrim list的key 起始索引 结束索引

Redis7 10大数据类型(Redis列表)_链表_06

7、rpoplpush 源列表 目标列表

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

Redis7 10大数据类型(Redis列表)_分页_07

8、lset key index value

根据index下标修改值

Redis7 10大数据类型(Redis列表)_链表_08

9、linsert key before/after 已有值 插入的新值

在list某个已有值的前后再添加具体值

Redis7 10大数据类型(Redis列表)_分页_09

10、应用场景

公11众号订阅消息

1 大V作者A老师和B发布了文章分别是 11 和 22

2 关注了他们两个,只要他们发布了新文章,就会安装进我的List
lpush likearticle:qingchenid    11 22

3 查看自己的号订阅的全部文章,类似分页,下面0~10就是一次显示10条
lrange likearticle:qingchenid 0 9

举报

相关推荐

0 条评论