美文网首页redis学习
redis的list类型(链表结构)

redis的list类型(链表结构)

作者: 程序员小饭 | 来源:发表于2019-07-22 15:57 被阅读0次

1:插入删除命令

lpush key value 把值插入到链接头部(左边)

lpop key 返回并删除链表头元素(左边)

rpush key value 把值插入到链接尾部(右边)

rpop key 返回并删除链表尾元素(右边)

2:lrange key start stop

返回链表中[start ,stop]中的元素

规律: 左数从0开始,右数从-1开始

小技巧:如果想查询出链表中所有元素但是又不知道链表的长度,可以用lrange link 0 -1来查询

3:lrem key count value

从key链表中删除 value值

注: 删除count的绝对值个value后结束

Count>0 从表头删除

Count<0 从表尾删除

lrem效果演示

4:ltrim key start stop

剪切key对应的链接,切[start,stop]一段,并把该段重新赋给key

5: lindex key index

返回index索引上的值

6:llen key

计算链接表的元素个数

7:linsert key after|before search value

作用: 在key链表中寻找’search’,并在search值之前|之后,.插入value

注: 一旦找到一个search后,命令就结束了,因此不会插入多个value,如果找不到search,不做任何处理

linsert key after|before search value演示 linsert key after|before search value演示

8:rpoplpush source dest

作用: 把source的尾部拿出,放在dest的头部,

并返回 该单元值

注意:没有lpoprpush命令

场景: task + bak 双链表完成安全队列

命令其实很简单,下面写一段伪代码,基本就明白优势了

task中存在的是需要处理的对象

while($task = rpoplpush(task,bak)){ //取出task中的元素并且放到dest中

result = deal(task); //处理取出的task元素

if($result){ //如果处理成功

lpop(bak); //删除掉bak中刚取出的元素

}

}

这样在bak队列中留下的元素就是未处理成功的元素,需要进行二次处理

9:brpop ,blpop key timeout

作用:等待弹出key的尾/头元素,

Timeout为等待超时时间

如果timeout为0,则一直等待

场景: 长轮询Ajax,在线聊天时,能够用到

相关文章

  • Redis' lists

    Redis列表基本操作命令 Redis list底层结构 Redis list由链表来实现。在Redis中链表的应...

  • redis学习系列(四)

    redis简单操作之list类型 redis里面的list类型被称为链表类型 1.lpush向链表的头部放入数据 ...

  • redis命令操作

    redis命令操作 一、string类型的数据 二、list数据类型(可以结合链表来理解) 三、Hash数据结构 ...

  • redis的list类型(链表结构)

    1:插入删除命令 lpush key value 把值插入到链接头部(左边) lpop key 返回并删除链表...

  • Redis的数据结构(二):链表

    链表在redis的应用 由于redis的c语言没有内置链表结构类型,因此redis自身实现了一套链表结构。链表主要...

  • 03-Redis列表操作

    1. 概述: 在Redis中,List类型是按照插入顺序排序的~字符串链表。和数据结构中的普通链表一样,我们可以在...

  • 吊打面试官之 Java Web [3]

    1.请问redis的List能在什么场景下使用? 参考回答: Redis 中list的数据结构实现是双向链表,所以...

  • Redis链表

    学习链接:Redis设计与实现 1. list结构和listNode结构组成链表 listNode结构: adli...

  • 4.3-Redis6数据结构之List类型介绍和应用场景—小滴课

    Redis6数据结构之List类型介绍和应用场景 简介:Redis6数据结构之List类型介绍和应用场景 数据结构...

  • 搞懂Redis(二)-2:List数据结构

    List存储结构 Redis3.2前,底层是用压缩列表zipList\双向循环链表linkedList当list存...

网友评论

    本文标题:redis的list类型(链表结构)

    本文链接:https://www.haomeiwen.com/subject/rarwlctx.html