一、概述

  1. redis列表是简单的字符串列表,按照插入顺序排序
  2. 可以添加一个元素到列表的头部(左边)或者尾部(右边)
  3. 一个列表最多可以包含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的更多相关文章

  1. redis 列表 数据类型

    列表 rpush dname  技术部  后勤部 售后部 lpush  dname   秘书部 lset dname 2  销售部     修改 lrange dname 0 -1   打印所有列表 ...

  2. redis 基本数据类型-列表(List)

    今天不瘦给大家分享一下redis第二个基本数据类型:列表.如果大家了解基本数据结构,相信大家对列表不会陌生,比如在C语言中我们可以使用数组实现一个列表,也可以使用链表实现一个列表(列表链表傻傻分不清楚 ...

  3. 6、Redis五大数据类型---列表(List)

    一.列表(List)简介 单键多值:Redis 列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边). 它的底层实际是个双向链表,对两端的操作性能很高,通过 ...

  4. Redis常用数据类型介绍、使用场景及其操作命令

    Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字 ...

  5. Redis不同数据类型的的数据结构实现

    我们知道Redis支持五种数据类型, 分别是字符串.哈希表(map).列表(list).集合(set)和有序集合,和Java的集合框架类似,不同数据类型的数据结构实也是不一样的. >>Re ...

  6. Redis笔记(三)Redis的数据类型

    前面说过,Redis的一大特性是支持丰富的数据类型, 这为更多的应用场景提供了可能. Redis有五种数据类型,包括string,list,set,sorted set和hash,注意,Redis的数 ...

  7. Redis常用数据类型

    Redis常用数据类型 转载自:http://blog.sina.com.cn/s/blog_7f37ddde0101021q.html     Redis最为常用的数据类型主要有以下五种: ●Str ...

  8. Redis基本数据类型

    -------------------Redis基本数据类型------------------- 1.String 字符串     1.概念         1.String 是redis最基本的类 ...

  9. Redis各个数据类型的使用场景

    Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). Redis列表命令 参考:http://www.r ...

随机推荐

  1. 讲座 - Transposable elements, non-coding RNAs and epigenetic control in embryonic stem cells

    Dr. Andrew Paul HutchinsDepartment of BiologySouthern University of Science and Technology, Shenzhen ...

  2. gogs 实现webhook钩子(php接口形式)

    1.概要流程 2.准备工作 gogs服务器 linux网站服务器(宝塔) 本地客户端 3.编写钩子访问的接口 在public下新建githook.php文件,代码如下: <?php $cmd = ...

  3. radioButon的使用

    界面: <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android=& ...

  4. postgresql 臭氧8小时聚合函数

    1.定义数据拼接函数 CREATE OR REPLACE FUNCTION "public"."sfun"("results" _numer ...

  5. ByteBuffer使用实例

    ByteBuffer作为JDK的字节流处理对象,这里举个小例子说明下用法,直接上代码: package com.wlf.netty.nettyserver; import org.junit.Asse ...

  6. 算法习题---5-2Ducci序列(UVa1594)

    一:题目 对于一个n元组(a1, a2, …, an),可以对于每个数求出它和下一个数的差的绝对值,得到一个新的n元组(|a1-a2|, |a2-a3|, …, |an-a1|).重复这个过程,得到的 ...

  7. 【Tomcat】Tomcat 配置开机启动

    参考:[Linux]开机自动启动脚本 环境:Linux环境(CentOS 7.4) 步骤 1.在/etc/rc.d/rc.local文件底部,添加内容: # apache-tomcat- /data/ ...

  8. c# 在静态方法里,怎么能得到调用者的类名?

    System.Diagnostics.StackTrace st = new System.Diagnostics.StackTrace(); string name = st.GetFrame(1) ...

  9. layer实现鼠标悬浮效果

    ; $(document).on('mouseenter', '.layer_hover', function(){ var words = $(this).data('words'); tip_in ...

  10. linux和windows换行符的^M问题

    起源 在windows中写的脚本执行完全没问题,代码一模一样,切换到linux中执行报错.利用命令 “vi/vim -b 文件名”查看文件发现每行结尾多了“^M”这样的结尾. 根源 通过查询得知,其问 ...