• redis列表数据类型---list


    一、概述

    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,第二个元素是被弹出的元素的值
  • 相关阅读:
    bootstrutp module 显示隐藏 模态框
    手机app传统邀请码安装与免邀请码安装区别,如何选择呢?
    好用的一些开源系统
    一个搞笑的招聘启事
    java和android及IOS对接RSA加密经验
    mysql大数据表改表结构方案
    android开发中监控android软件网络请求的软件Charles使用入门
    android IOC框架学习记录
    java分布式事务
    十八届三中全会的综合改革方案将涉及哪些内容?(转自知乎)
  • 原文地址:https://www.cnblogs.com/lxhyty/p/11390033.html
Copyright © 2020-2023  润新知