• (基本知识)Redis 列表(List)相关命令函数


    1. Blpop :在设定时间内(秒)移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

           返回: 第一个元素是弹出元素的 key ,第二个元素是弹出元素的值

           如果列表为空,返回一个 nil

    127.0.0.1:6379> lpush yzt aaa
    (integer) 1
    127.0.0.1:6379> lpush yzt bbb
    (integer) 2
    127.0.0.1:6379> lpush yzt ccc
    (integer) 3
    127.0.0.1:6379> blpop yzt 3
    1) "yzt"
    2) "ccc"
    127.0.0.1:6379> blpop yztd 3
    (nil)
    (3.10s)
    127.0.0.1:6379>

    2.Brpop :移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止 

           返回: 第一个元素是弹出元素的 key ,第二个元素是弹出元素的值

           如果列表为空,返回一个 nil

    127.0.0.1:6379> brpop yzt 3
    1) "yzt"
    2) "aaa"
    127.0.0.1:6379> 

    3.Brpoplpush :从列表中取出最后一个元素,并插入到另外一个列表的头部; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。

            返回: 第一个元素是弹出元素的 key ,第二个元素是弹出元素的值

           如果列表为空,返回一个 nil

    127.0.0.1:6379> lrange yzt 0 10
    1) "www"
    2) "ddd"
    3) "ooo"
    4) "bbb"
    127.0.0.1:6379> brpoplpush yzt ydt 3
    "bbb"
    127.0.0.1:6379> lrange ydt 0 10
    1) "bbb"
    127.0.0.1:6379> lrange yzt 0 10
    1) "www"
    2) "ddd"
    3) "ooo"
    127.0.0.1:6379> 

    4.Lindex :用于通过索引获取列表中的元素。可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。成功返回值 否则返回nil

    127.0.0.1:6379> lrange yzt 0 10
    1) "www"
    2) "ddd"
    3) "ooo"
    127.0.0.1:6379> lindex yzt 0
    "www"
    127.0.0.1:6379> lindex yzt 2
    "ooo"
    127.0.0.1:6379>

    5.Linsert :用于在列表的元素前或者后插入元素。当指定元素不存在于列表中时,不执行任何操作

    LINSERT key BEFORE|AFTER pivot value

          成功返回列表长度

          列表中的元素不存在返回-1

         key不存在或是空列表返回0

    127.0.0.1:6379> lrange yzt 0 10
    1) "www"
    2) "ddd"
    3) "ooo"
    127.0.0.1:6379> linsert yzt before ddd ppp
    (integer) 4
    127.0.0.1:6379> lrange yzt 0 10
    1) "www"
    2) "ppp"
    3) "ddd"
    4) "ooo"
    127.0.0.1:6379> linsert yzt after ddd mmm
    (integer) 5
    127.0.0.1:6379> lrange yzt 0 10
    1) "www"
    2) "ppp"
    3) "ddd"
    4) "mmm"
    5) "ooo"
    127.0.0.1:6379> 

    6.Llen :用于返回列表的长度。 如果列表 key 不存在,则 key 被解释为一个空列表,返回 0 。 如果 key 不是列表类型,返回一个错误

    127.0.0.1:6379> lrange yzt 0 10
    1) "www"
    2) "ppp"
    3) "ddd"
    4) "mmm"
    5) "ooo"
    127.0.0.1:6379> llen yzt
    (integer) 5
    127.0.0.1:6379> 

    7.Lpop 命令用于移除并返回列表的第一个元素,不存在返回nil

    127.0.0.1:6379> lrange yzt 0 10
    1) "www"
    2) "ppp"
    3) "ddd"
    4) "mmm"
    5) "ooo"
    127.0.0.1:6379> llen yzt
    (integer) 5
    127.0.0.1:6379> lpop yzt
    "www"
    127.0.0.1:6379> llen yzt
    (integer) 4
    127.0.0.1:6379> 

    8.Lpush :将一个或多个值插入到列表头部 返回列表长度

    127.0.0.1:6379> lpush yzt fff
    (integer) 5
    127.0.0.1:6379> lrange yzt 0 10
    1) "fff"
    2) "ppp"
    3) "ddd"
    4) "mmm"
    5) "ooo"
    127.0.0.1:6379> lpush yzt hhh lll
    (integer) 7
    127.0.0.1:6379> lrange yzt 0 10
    1) "lll"
    2) "hhh"
    3) "fff"
    4) "ppp"
    5) "ddd"
    6) "mmm"
    7) "ooo"
    127.0.0.1:6379>

    9. Lpushx 将一个值插入到已存在的列表头部,列表不存在时操作无效  成功返回列表长度

    127.0.0.1:6379> lrange ydt 0 10
    1) "bbb"
    127.0.0.1:6379> lpushx ydt fff
    (integer) 2
    127.0.0.1:6379> lrange ydt 0 10
    1) "fff"
    2) "bbb"
    127.0.0.1:6379> lpushx ydt qqq eee
    (integer) 4
    127.0.0.1:6379> lrange ydt 0 10
    1) "eee"
    2) "qqq"
    3) "fff"
    4) "bbb"
    127.0.0.1:6379> 

    10.Lrange 返回列表中指定区间内的元素   偏移量 START 和 END 指定

               其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推

               可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推

    127.0.0.1:6379> lrange ydt 0 10
    1) "eee"
    2) "qqq"
    3) "fff"
    4) "bbb"

    11. Lrem 根据参数 COUNT 的值,移除列表中与参数 VALUE 相等的元素

            count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。

           count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。

           count = 0 : 移除表中所有与 VALUE 相等的值

           返回被移除元素的数量

    127.0.0.1:6379> lrange yzt 0 10
    1) "fff"
    2) "lll"
    3) "hhh"
    4) "fff"
    5) "ppp"
    6) "ddd"
    7) "mmm"
    8) "ooo"
    127.0.0.1:6379> lrem yzt 2 fff
    (integer) 2
    127.0.0.1:6379> lrange yzt 0 10
    1) "lll"
    2) "hhh"
    3) "ppp"
    4) "ddd"
    5) "mmm"
    6) "ooo"
    127.0.0.1:6379>

    12.Lset 通过索引来设置元素的值  超出索引、空列表返回错误

    127.0.0.1:6379> lrange yzt 0 10
    1) "lll"
    2) "hhh"
    3) "ppp"
    4) "ddd"
    5) "mmm"
    6) "ooo"
    127.0.0.1:6379> lset yzt 0 plk
    OK
    127.0.0.1:6379> lrange yzt 0 10
    1) "plk"
    2) "hhh"
    3) "ppp"
    4) "ddd"
    5) "mmm"
    6) "ooo"
    127.0.0.1:6379> 

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

    127.0.0.1:6379> lrange yzt 0 10
    1) "plk"
    2) "hhh"
    3) "ppp"
    4) "ddd"
    5) "mmm"
    6) "ooo"
    127.0.0.1:6379> ltrim yzt 0 3
    OK
    127.0.0.1:6379> lrange yzt 0 10
    1) "plk"
    2) "hhh"
    3) "ppp"
    4) "ddd"
    127.0.0.1:6379> 

    14.Rpop :用于移除列表的最后一个元素,返回值为移除的元素

    127.0.0.1:6379> lrange yzt 0 10
    1) "plk"
    2) "hhh"
    3) "ppp"
    4) "ddd"
    127.0.0.1:6379> rpop yzt
    "ddd"
    127.0.0.1:6379> 

    15.Rpoplpush :用于移除列表的最后一个元素,并将该元素添加到另一个列表并返回

    127.0.0.1:6379> lrange yzt 0 10
    1) "plk"
    2) "hhh"
    3) "ppp"
    127.0.0.1:6379> lrange ydt 0 10
    1) "eee"
    2) "qqq"
    3) "fff"
    4) "bbb"
    127.0.0.1:6379> rpoplpush yzt ydt
    "ppp"
    127.0.0.1:6379> lrange yzt 0 10
    1) "plk"
    2) "hhh"
    127.0.0.1:6379> lrange ydt 0 10
    1) "ppp"
    2) "eee"
    3) "qqq"
    4) "fff"
    5) "bbb"
    127.0.0.1:6379> 

    16.Rpush :用于将一个或多个值插入到列表的尾部(最右边)  返回列表长度

    127.0.0.1:6379> lrange yzt 0 10
    1) "plk"
    2) "hhh"
    127.0.0.1:6379> rpush yzt nnn
    (integer) 3
    127.0.0.1:6379> lrange yzt 0 10
    1) "plk"
    2) "hhh"
    3) "nnn"
    127.0.0.1:6379> 

    17.Rpushx :用于将一个值插入到已存在的列表尾部(最右边)。如果列表不存在,操作无效  返回列表的长度

    127.0.0.1:6379> rpushx yzt k
    (integer) 4
    127.0.0.1:6379> lrange yzt 0 10
    1) "plk"
    2) "hhh"
    3) "nnn"
    4) "k"
    127.0.0.1:6379> 
  • 相关阅读:
    JavaScript Patterns 5.7 Object Constants
    JavaScript Patterns 5.6 Static Members
    JavaScript Patterns 5.5 Sandbox Pattern
    JavaScript Patterns 5.4 Module Pattern
    JavaScript Patterns 5.3 Private Properties and Methods
    JavaScript Patterns 5.2 Declaring Dependencies
    JavaScript Patterns 5.1 Namespace Pattern
    JavaScript Patterns 4.10 Curry
    【Android】如何快速构建Android Demo
    【Android】如何实现ButterKnife
  • 原文地址:https://www.cnblogs.com/ddf128/p/12187082.html
Copyright © 2020-2023  润新知