(基本知识)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> 
posted @ 2020-01-13 14:22  微刻时光  阅读(245)  评论(0编辑  收藏  举报