redis列表数据类型---list
一、概述
- redis列表是简单的字符串列表,按照插入顺序排序
- 可以添加一个元素到列表的头部(左边)或者尾部(右边)
- 一个列表最多可以包含2^32-1个元素(每个列表超过40亿个元素)。
二、redis列表类型键的设置
- 命令名称:lpush
- 语法:lpush key value [value……]
- 功能:
- 1)将一个或多个值value插入到列表key的表头。
- 2)如果多个value值,那么各个value值按从左到右的顺序依次插入到表头。
- 3)操作为原子性操作,如果key不存在,一个空列表会被创建并执行lpush操作。
- 返回值:
- 1)执行lpush命令后,列表的长度;如果key不是列表,返回一个错误
- 命令名称:lpushx
- 语法:lpushx key value
- 功能:
- 1)将值value插入到列表key的表头,当且仅当key存在并且是一个列表。
- 2)和lpush命令相反,当key不存在时,lpushx命令什么也不做。
- 返回值:
- 1)执行lpushx命令后,列表的长度
- 命令名称:linsert
- 语法:linsert key BEFORE|AFTER pivot value
- 功能:
- 1)将值value插入到列表key当中,位于值pivot之前或之后。
- 2)当pivot不存在于列表key时,不执行任何操作。
- 3)当key不存在时,key被视为空列表,不执行任何操作。
- 返回值:
- 1)如果命令执行成功,返回插入操作完成之后,列表的长度;
- 2)如果没有找到pivot,返回-1;
- 3)如果key不存在或为空列表,返回0
- 命令名称:lset
- 语法:lset key index value
- 功能:
- 1)将列表key下标为index的元素的值设置为value。
- 2)当index参数超出范围,或对一个空列表(key不存在)进行lset时,返回一个错误。
- 3)当key不存在时,key被视为空列表,不执行任何操作。
- 返回值:
- 1)操作成功返回ok,否则返回错误信息
- 命令名称:rpush
- 语法:rpush key value [value……]
- 功能:
- 1)将一个或多个值value插入到列表key的尾部。
- 2)如果多个value值,那么各个value值按从左到右的顺序依次插入到表尾。
- 3)操作为原子性操作,如果key不存在,一个空列表会被创建并执行rpush操作。
- 返回值:
- 1)执行rpush命令后,列表的长度;
- 2)如果key不是列表,返回一个错误
- 命令名称:rpushx
- 语法:rpush key value
- 功能:
- 1)将值value插入到列表key的表头,当且仅当key存在并且是一个列表。
- 2)和rpush命令相反,当key不存在时,rpushx命令什么也不做。
- 返回值:
- 1)执行rpushx命令后,列表的长度
三、redis列表类型键的查询
- 命令名称:lindex
- 语法:lindex key index
- 功能:
- 1)返回列表key中,下标为index的元素,0为第一个元素,-1为最后一个元素。
- 返回值:
- 1)列表中下标为index的元素。
- 2)如果index参数的值不在列表的区间范围内(out of range),返回nil
- 命令名称:llen
- 语法:llen key
- 功能:
- 1)返回列表key的长度。
- 返回值:
- 1)如果key不存在,则key被解释为一个空列表,返回0。
- 2)列表key的长度。
- 命令名称:lrange
- 语法:lrange key start stop
- 功能:
- 1)返回列表key中指定区间内的元素,区间以偏移量start和stop指定。
- 2)下标(index)参数start和stop都以0为底。
- 3)也可以使用负数下标,以-1表示列表的最后一个元素
- 返回值:
- 1)一个列表,包含指定区间内的元素。
- 2)超出范围的下标值不会引起错误
四、redis列表类型键的删除
- 命令名称:lpop
- 语法:lpop key
- 功能:
- 1)移除并返回列表key的头元素
- 返回值:
- 1)列表的头元素。
- 2)当key不存在时,返回nil
- 命令名称:lrem
- 语法:lrem key count value
- 功能:
- 1)根据参数count的值,移除列表中与参数value相等的元素。
- 2)count > 0:从表头开始向表尾搜索,移除与value相等的元素,数量为count;count < 0:从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值;count = 0:移除表中所有与value相等的值
- 返回值:
- 1)被移除元素的数量
- 命令名称:ltrim
- 语法:ltrim key start stop
- 功能:
- 1)对一个列表进行修剪(trim),也就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除
- 返回值:
- 1)命令执行成功是,返回OK。
- 命令名称:rpop
- 语法:rpop key
- 功能:
- 1)移除并返回列表key的尾元素
- 返回值:
- 1)列表的尾元素。
- 2)当key不存在时,返回nil
- 命令名称:rpoplpush
- 语法:rpoplpush source destination
- 功能:
- 1)此命令在一个原子时间内,执行以下两个动作:将列表source中的最后一个元素(尾元素)弹出,并返回给客户端;将source弹出的元素插入到列表destination,作为destination列表的头元素
- 返回值:
- 1)被弹出的元素
五、redis列表类型键的阻塞式操作
- 命令名称:blpop
- 语法:blpop key [key……] timeout
- 功能:
- 1)blpop是列表的阻塞式(blocking)弹出原语,lpop命令的阻塞式版本,当给定列表内没有任何元素可供弹出的时候,连接将被blpop命令阻塞,知道等待超时或发现可弹出元素为止
- 返回值:
- 1)假如在指定时间内没有任何元素被弹出,则返回一个nil和等待时长。
- 2)反之,返回一个含有两个元素的列表,第一个元素是被弹出的元素所属的key,第二个元素是被弹出的元素的值
- 命令名称:brpop
- 语法:brpop key [key……] timeout
- 功能:
- 1)brpop除了弹出元素的位置和blpop不同外,其他表现一致
- 返回值:
- 1)假如在指定时间内没有任何元素被弹出,则返回一个nil和等待时长。
- 2)反之,返回一个含有两个元素的列表,第一个元素是被弹出的元素所属的key,第二个元素是被弹出的元素的值
- 命令名称:brpoplpush
- 语法:brpoplpush source destination timeout
- 功能:
- 1)brpoplpush是rpoplpush的阻塞版本,当给定列表source不为空时,brpoplpush的表现和rpoplpush一样。
- 2)当列表source为空时,brpoplpush命令将阻塞连接,直到等待超时,或有另一个客户端对source执行lpush或rpush命令为止。
- 3)超时参数timeout接受一个以秒为单位的数字作为值。超时参数设为0表示阻塞时间可以无限期延长(block indefinitely)
- 返回值:
- 1)假如在指定时间内没有任何元素被弹出,则返回一个nil和等待时长。
- 2)反之,返回一个含有两个元素的列表,第一个元素是被弹出的元素所属的key,第二个元素是被弹出的元素的值
redis列表数据类型---list的更多相关文章
- redis 列表 数据类型
列表 rpush dname 技术部 后勤部 售后部 lpush dname 秘书部 lset dname 2 销售部 修改 lrange dname 0 -1 打印所有列表 ...
- redis 基本数据类型-列表(List)
今天不瘦给大家分享一下redis第二个基本数据类型:列表.如果大家了解基本数据结构,相信大家对列表不会陌生,比如在C语言中我们可以使用数组实现一个列表,也可以使用链表实现一个列表(列表链表傻傻分不清楚 ...
- 6、Redis五大数据类型---列表(List)
一.列表(List)简介 单键多值:Redis 列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边). 它的底层实际是个双向链表,对两端的操作性能很高,通过 ...
- Redis常用数据类型介绍、使用场景及其操作命令
Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...
- Redis不同数据类型的的数据结构实现
我们知道Redis支持五种数据类型, 分别是字符串.哈希表(map).列表(list).集合(set)和有序集合,和Java的集合框架类似,不同数据类型的数据结构实也是不一样的. >>Re ...
- Redis笔记(三)Redis的数据类型
前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数 ...
- Redis常用数据类型
Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html Redis最为常用的数据类型主要有以下五种: ●Str ...
- Redis基本数据类型
-------------------Redis基本数据类型------------------- 1.String 字符串 1.概念 1.String 是redis最基本的类 ...
- Redis各个数据类型的使用场景
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). Redis列表命令 参考:http://www.r ...
随机推荐
- 右键查看别人网页的js代码为什么会显示乱码
查看别人网页的js显示乱码 解决方法: 打开浏览器,选择设置,点击更多,选择文字编码为Unicode
- JVM 类的卸载
1.当某个类被加载,连接和初始化后,它的生命周期就开始了.当代表这个类的Class对象不再被引用,即不可触及时,Class对象就会结束生命周期,这个类在方法区内的数据也会被卸载,从而结束这个类的生命周 ...
- 【vue】常用操作
一.Vue中import from的来源:省略后缀与加载文件夹 https://blog.csdn.net/fyyyr/article/details/83657828 二.Vue安装依赖 #安装依赖 ...
- GIS地理工具案例教程——批量合并影像
GIS地理工具案例教程——批量合并影像 商务合作,科技咨询,版权转让:向日葵,135—4855__4328,xiexiaokui#qq.com 描述:合并目录下的所有影像 功能:对指定工作空间下的栅格 ...
- Flutter: 运行新项目报错
今天接手了一个客户传过来的Flutter项目,估计是客户直接拷贝过来的,无法直接运行,由于刚接手Flutter, 很多东西还不懂,折腾了一会给弄好了. 1. 提示Dart SDK is not con ...
- 解决“Jquery的each里面return失效的问题”
参考文章:http://blog.csdn.net/coffeesmile/article/details/53349860 问题描述: 集中获取页面的一些元素,然后用each循环处理这些元素,如果其 ...
- 峰回路转的提权08r2服务器
事前日下这个站的时候说实话,略微的蛋疼.其过程就不写了,就讲讲提权吧.可能图片有点暗.看看我写这篇文章的时候就知道了. 这个学校我好多同学在里面读书,就萌生了.日下这个站的想法. 拿到shell,理所 ...
- 在gitlab新建分支,IDEA切换时找不到的解决办法
VCS——>Git——>Fetch
- 安装好oracle后如何使用PLSQL连接【我】
简单的说: 一.如果你本地安装的是32位的Oracle,可以直接在PLSQl中配置oracle安装路径下的相关目录文件,直接启动PLSQL 二.如果你本地安装的是64位的Oracle或者oracle服 ...
- 0.9.0.RELEASE版本的spring cloud alibaba sentinel+feign降级处理实例
既然用到了feign,那么主要是针对服务消费方的降级处理.我们基于0.9.0.RELEASE版本的spring cloud alibaba nacos+feign实例添油加醋,把sentinel功能加 ...