iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >redis的list数据类型相关命令分析及如何使用
  • 182
分享到

redis的list数据类型相关命令分析及如何使用

2023-06-26 05:06:41 182人浏览 薄情痞子
摘要

今天给大家介绍一下redis的list数据类型相关命令分析及如何使用。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。list列表简介list是简单的字符串列表(

今天给大家介绍一下redis的list数据类型相关命令分析及如何使用。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。

    list列表简介

    • list是简单的字符串列表(说通俗点,存储的还是字符串),按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边),个列表最多可以包含^32-1个元素(每个列表超过40亿个元素)。

    • Redis中的list和Java中的LinkedList很像,底层都是一种链表结构,list的插入和删除操作非常快,时间复杂度为 0(1),不像数组结构插入、删除操作需要移动数据。像归像,但是redis中的list底层可不是一个双向链表那么简单。

    • 当数据量较少的时候它的底层存储结构为一块连续内存,称之为ziplist(压缩列表),它将所有的元素紧挨着一起存储,分配的是一块连续的内存;当数据量较多的时候将会变成quicklist(快速链表)结构。

    • 可单纯的链表也是有缺陷的,链表的前后指针prev和next会占用较多的内存,会比较浪费空间,而且会加重内存的碎片化。在redis 3.2之后就都改用ziplist+链表的混合结构,称之为quicklist(快速链表)。

    常用命令

    添加命令

    lpush key value

    从左边插入元素(将一个或多个值插入到列表头部)

    127.0.0.1:6379> lpush ids 1(integer) 1127.0.0.1:6379> lrange ids 0 -11) "1"127.0.0.1:6379> lpush ids 2(integer) 2127.0.0.1:6379> lrange ids 0 -11) "2"2) "1"

    rpush key value

    从右边插入元素(将一个或多个值插入到列表的尾部(最右边))

    127.0.0.1:6379> rpush ids 3(integer) 3127.0.0.1:6379> lrange ids 0 -11) "2"2) "1"3) "3"

    linsert key BEFORE|AFTER pivot value
    向某个元素前/后插入元素,返回结果为当前列表长度,注意列表不存在或者指定元素不存在列表中时,都将不执行任何操作。

    //元素3前插入0127.0.0.1:6379> linsert ids before 3 0(integer) 4127.0.0.1:6379> lrange ids 0 -11) "2"2) "1"3) "0"4) "3"//元素3后插入0127.0.0.1:6379> linsert ids after 3 4(integer) 5127.0.0.1:6379> lrange ids 0 -11) "2"2) "1"3) "0"4) "3"5) "4"

    查询命令

    lrange key start end
    获取列表中指定范围内的元素列表;若start值大于列表end值则返回空列表
    如上已经展示过了

    lindex key index
    获取列表指定索引下标的元素

    127.0.0.1:6379> lindex ids 0"2"127.0.0.1:6379> lindex ids -1"4"

    llen key
    获取列表长度;列表不存在则返回0

    127.0.0.1:6379> llen ids(integer) 5

    弹出/删除命令

    lpop key
    从列表左侧弹出元素并返回头部元素

    127.0.0.1:6379> lpop ids"2"127.0.0.1:6379> lrange ids 0 -11) "1"2) "0"3) "3"4) "4"

    rpop key
    从列表右侧弹出元素并返回尾部元素

    127.0.0.1:6379> rpop ids"4"127.0.0.1:6379> lrange ids 0 -11) "1"2) "0"3) "3"

    lrem key count value
    从列表中找到等于value的元素进行删除,根据count的不同分为三种情况:
    count > 0,从表头开始向表尾,移除数量为count个元素;
    count < 0,从表尾开始向表头,移除数量为count的绝对值个元素;
    count = 0,移除表中所有与 value 相等的值

    127.0.0.1:6379> lrem ids 0 3(integer) 1127.0.0.1:6379> lrange ids 0 -11) "1"2) "0"

    ltrim key start end
    对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除

    127.0.0.1:6379> ltrim ids 0 0OK127.0.0.1:6379> lrange ids 0 -11) "1"

    修改命令

    lset key index value
    修改指定下标的元素的值设置为value

    127.0.0.1:6379> lset ids 0 0OK127.0.0.1:6379> lrange ids 0 -11) "0"

    阻塞弹出命令

    blpop key [key &hellip;] timeout
    移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时(单位秒)或发现可弹出元素为止

    brpop key [key &hellip;] timeout
    移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止
    演示:
    开启三个reids连接窗口,第一个执行blpop ,第二个执行brpop ,第三个执行添加:
    可以看到窗口1和2执行完都已经阻塞在这里,这是因为ids中没有元素

    redis的list数据类型相关命令分析及如何使用

    redis的list数据类型相关命令分析及如何使用

    窗口3执行添加:lpush ids 1 2 3 4 5 6
    可以看到窗口1和2立即弹出对应元素:

    redis的list数据类型相关命令分析及如何使用

    redis的list数据类型相关命令分析及如何使用

    应用场景

    消息队列:lpop和rpush(或者反过来,lpush和rpop)能实现队列的功能

    朋友圈的点赞列表、评论列表、排行榜:lpush命令和lrange命令能实现最新列表的功能,每次通过lpush命令往列表里插入新的元素,然后通过lrange命令读取最新的元素列表。

    以上就是redis的list数据类型相关命令分析及如何使用的全部内容了,更多与redis的list数据类型相关命令分析及如何使用相关的内容可以搜索编程网之前的文章或者浏览下面的文章进行学习哈!相信小编会给大家增添更多知识,希望大家能够支持一下编程网!

    --结束END--

    本文标题: redis的list数据类型相关命令分析及如何使用

    本文链接: https://www.lsjlt.com/news/307125.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • redis的list数据类型相关命令分析及如何使用
      今天给大家介绍一下redis的list数据类型相关命令分析及如何使用。文章的内容小编觉得不错,现在给大家分享一下,觉得有需要的朋友可以了解一下,希望对大家有所帮助,下面跟着小编的思路一起来阅读吧。list列表简介list是简单的字符串列表(...
      99+
      2023-06-26
    • redis的list数据类型相关命令介绍及使用
      目录list列表简介常用命令添加命令查询命令弹出/删除命令修改命令阻塞弹出命令应用场景list列表简介 list是简单的字符串列表(说通俗点,存储的还是字符串),按照插入顺序排序。你...
      99+
      2024-04-02
    • redis部署及各种数据类型使用命令的示例分析
      这篇文章给大家分享的是有关redis部署及各种数据类型使用命令的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。编译安装redis开始部署[root@mcw01 ~]$ lsanacon...
      99+
      2023-06-29
    • Redis基本数据类型List常用操作命令
      目录Redis数据类型List操作一、push 插入元素1. lpush,在头部插入2. rpush,在尾部插入二、range 通过区间获取元素三、pop 移除元素1. lpop 左...
      99+
      2024-04-02
    • 如何进行SQLite数据库管理相关命令的使用分析
      这篇文章将为大家详细讲解有关如何进行SQLite数据库管理相关命令的使用分析,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。  1.创建数据库  启动命令行,...
      99+
      2024-04-02
    • redis部署及各种数据类型使用命令详解
      目录编译安装redis开始部署报错 gcc命令没有找到:#解决编译安装所需的依赖环境继续部署redis服务端运行和客户端连接redis配置redis简单配置并启动set、get命令简...
      99+
      2024-04-02
    • Redis基本数据类型List常用操作命令是什么
      这篇文章主要讲解了“Redis基本数据类型List常用操作命令是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis基本数据类型List常用操作命令是什么”吧!Redis数据类型Li...
      99+
      2023-06-30
    • 如何分析ADO数据映射的相关使用
      这期内容当中小编将会给大家带来有关如何分析ADO数据映射的相关使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ADO数据和 DataSet:描述 DataSet 如何与作为数据源的 XML 进行交互(包...
      99+
      2023-06-17
    • Redis的特殊数据类型如何使用
      这篇文章主要介绍“Redis的特殊数据类型如何使用”,在日常操作中,相信很多人在Redis的特殊数据类型如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Redis的特殊数据类型如何使用”的疑惑有所帮助!...
      99+
      2023-06-29
    • redis中多样的数据类型及集群相关的知识有哪些
      这篇文章主要介绍了redis中多样的数据类型及集群相关的知识有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇redis中多样的数据类型及集群相关的知识有哪些文章都会有所收获...
      99+
      2024-04-02
    • Redis中HyperLogLog数据类型如何使用
      这篇文章主要讲解了“Redis中HyperLogLog数据类型如何使用”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis中HyperLogLog数据类型如何使用”吧!1. HyperL...
      99+
      2023-07-05
    • Redis 中ZSET数据类型命令使用及对应场景总结(案例详解)
      目录1.zadd添加元素2.zrem 从有序集合key中删除元素3.zscore 返回有序集合key中元素member的分值4.zincrby 为有序集合key中元素增加分值5.zc...
      99+
      2023-01-03
      Redis 中ZSET数据类型命令 Redis ZSET数据类型
    • Redis 中ZSET数据类型命令使用及对应场景总结(案例详解)
      目录1.zadd添加元素2.zrem 从有序集合key中删除元素3.zscore 返回有序集合key中元素member的分值4.zincrby 为有序集合key中元素增加分值5.zcard获取有序集合key中元素总个数6...
      99+
      2023-01-03
      Redis 中ZSET数据类型命令 RedisZSET数据类型
    • redis的五大数据类型应用场景分析
      目录1、对象的类型与编码2、字符串对象3、列表对象4、哈希对象5、集合对象6、有序集合对象7、五大数据类型的应用场景1、对象的类型与编码   Redis使用前面说的五大数据类型来表示...
      99+
      2024-04-02
    • 如何使用Python对NetCDF数据做空间相关分析
      引言:我一直想理解空间相关分析的计算思维,于是今天又拿起Python脚本和数据来做练习。首先需要说明的是,这次实验的数据和Python脚本均来自于[好久不见]大佬,在跟大佬说明之后,...
      99+
      2024-04-02
    • 如何用Python对数据进行相关性分析
      这期内容当中小编将会给大家带来有关如何用Python对数据进行相关性分析,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。在进行数据分析时,我们所用到的数据往往都不是一维的,而这些数据在分析时难度就增加了不少...
      99+
      2023-06-16
    • 如何在PHP和JavaScript中使用相同的数据类型?
      PHP和JavaScript都是非常流行的编程语言,它们有许多相似之处,例如它们都支持许多相同的数据类型。在本文中,我们将介绍如何在PHP和JavaScript中使用相同的数据类型。 数组 数组是一种非常常见的数据类型,它可以在PHP...
      99+
      2023-11-14
      函数 javascript 数据类型
    • redis的五种数据类型及使用场景有哪些
      redis 支持五种数据类型:字符串、列表、哈希表、有序集合和无序集合。这些类型分别适合存储各种数据场景,例如文本数据、有序元素列表、映射键值数据、按分数排序的元素集合以及独特的元素集合...
      99+
      2024-04-08
    • redis的五种数据类型及使用场景是什么
      redis 提供了五种数据类型,分别为:字符串:存储文本、json 数据、缓存、计数器;哈希:存储用户数据、会话信息、对象属性;列表:存储队列、时间线、排名、购物车;集合:存储标签、分类...
      99+
      2024-04-08
      键值对
    • MySQL数据库常用命令有哪些及如何使用
      本篇内容主要讲解“MySQL数据库常用命令有哪些及如何使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL数据库常用命令有哪些及如何使用”吧!1.对数据库常用命令连接数据库mysql -...
      99+
      2023-07-05
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作