Redis7 10大数据类型(Redis列表)
  eHipUjOuzYYH 2023年11月13日 15 0

一、常用

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
【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月13日 0

暂无评论