美文网首页
Redis的基本类型之一:List

Redis的基本类型之一:List

作者: 程序员小杰 | 来源:发表于2020-07-11 13:11 被阅读0次

    Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)。

    1、lpush key value1 [value2]

    将一个或多个值从左到右依次插入到列表头部

    127.0.0.1:6379> lpush k1 gongj yuanj
    (integer) 2
    

    2、lrange key start stop

    获取列表指定范围内的元素

    127.0.0.1:6379> lrange k1 0 -1
    1) "yuanj"
    2) "gongj"
    

    3、rpush key value1 [value2]

    将一个或多个值从右到左依次插入到列表头部

    127.0.0.1:6379> rpush k2 gognj yuanj
    (integer) 2
    127.0.0.1:6379> lrange k2 0 -1
    1) "gognj"
    2) "yuanj"
    

    4、rpop key

    移除列表的最后一个元素,返回值为移除的元素

    127.0.0.1:6379> lrange k2 0 -1
    1) "gognj"
    2) "yuanj"
    127.0.0.1:6379> rpop k2
    "yuanj"
    

    5、lpop key

    移除列表的第一个元素,返回值为移除的元素

    127.0.0.1:6379> lrange k1 0 -1
    1) "yuanj"
    2) "gongj"
    127.0.0.1:6379> lpop k1
    "yuanj"
    

    6、lindex key index

    通过索引获取列表中的元素

    127.0.0.1:6379> lpush k3 gongj yuanj gong yuan
    (integer) 4
    127.0.0.1:6379> lrange k3 0 -1
    1) "yuan"
    2) "gong"
    3) "yuanj"
    4) "gongj"
    127.0.0.1:6379> lindex k3 3
    "gongj"
    

    7、ltrim key start stop

    对一个列表进行修剪,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除

    127.0.0.1:6379> ltrim k3 0 2
    OK
    127.0.0.1:6379> lrange k3 0 -1
    1) "yuan"
    2) "gong"
    3) "yuanj"
    

    8、blpop key1 [key2 ] timeout

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

    127.0.0.1:6379> blpop k3 30
    1) "k3"
    2) "yuan"
    127.0.0.1:6379> blpop k3 30
    1) "k3"
    2) "gong"
    127.0.0.1:6379> blpop k3 30
    1) "k3"
    2) "yuanj"
    127.0.0.1:6379> blpop k3 30    #已经没有元素可移除,被阻塞
    (nil)
    (30.06s)
    

    9、brpop key1 [key2 ] timeout

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

    10、brpoplpush source destination timeout

    从列表的尾部中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止

    127.0.0.1:6379> lrange k2 0 -1
    1) "gognj"
    127.0.0.1:6379> lrange k3 0 -1
    1) "yuan"
    2) "gong"
    3) "yuanj"
    
    127.0.0.1:6379> brpoplpush k3 k2 10
    "yuanj"
    127.0.0.1:6379> brpoplpush k3 k2 10
    "gong"
    127.0.0.1:6379> brpoplpush k3 k2 10
    "yuan"
    127.0.0.1:6379> brpoplpush k3 k2 10
    (nil)
    (10.02s)
    
    127.0.0.1:6379> lrange k2 0 -1
    1) "yuan"
    2) "gong"
    3) "yuanj"
    4) "gognj"
    

    11、lrem key count value

    移除列表元素
    count 的值可以是以下几种:
    count > 0 : 从表头开始向表尾搜索,移除与 VALUE 相等的元素,数量为 COUNT 。
    count < 0 : 从表尾开始向表头搜索,移除与 VALUE 相等的元素,数量为 COUNT 的绝对值。
    count = 0 : 移除表中所有与 VALUE 相等的值

    127.0.0.1:6379> lpush k3 gongj yuanj gong yuan
    (integer) 4
    127.0.0.1:6379> lrem k3 0 gongj
    (integer) 1
    127.0.0.1:6379> lrange k3 0 -1
    1) "yuan"
    2) "gong"
    3) "yuanj"
    

    12、linsert key BEFORE|AFTER pivot value

    在列表中某个存在值(pivot)前或后插入元素,key和pivot不存在,不进行任何操作

    127.0.0.1:6379> lrange k2 0 -1
    1) "yuan"
    2) "gong"
    3) "yuanj"
    4) "gognj"
    
    127.0.0.1:6379> linsert k2 before yuan yyyyy
    (integer) 5
    
    127.0.0.1:6379> lrange k2 0 -1
    1) "yyyyy"
    2) "yuan"
    3) "gong"
    4) "yuanj"
    5) "gognj"
    

    13、LLEN key

    获取列表长度

    127.0.0.1:6379> llen k2
    (integer) 5
    

    14、lpushx key value

    将一个值插入到已存在的列表头部

    127.0.0.1:6379> lpushx k2 xxxx
    (integer) 6
    127.0.0.1:6379> lrange k2 0 -1
    1) "xxxx"
    2) "yyyyy"
    3) "yuan"
    4) "gong"
    5) "yuanj"
    6) "gognj"
    

    15、RPUSHX key value

    将一个值插入到已存在的列表尾部

    127.0.0.1:6379> rpushx k1 yyyy
    (integer) 3
    127.0.0.1:6379> lrange k1 0 -1
    1) "gognj"
    2) "gongj"
    3) "yyyy"
    

    16、lset key index value

    通过索引设置列表元素的值

    127.0.0.1:6379> lset k2 2 hhhh
    OK
    127.0.0.1:6379> lrange k2 0 -1
    1) "xxxx"
    2) "yyyyy"
    3) "hhhh"
    4) "gong"
    5) "yuanj"
    6) "gognj"
    127.0.0.1:6379> 
    

    17、rpoplpush source destination

    移除列表的最后一个元素,并将该元素添加到另一个列表并返回

    127.0.0.1:6379> lrange k1 0 -1
    1) "gongj"
    127.0.0.1:6379> rpoplpush k2 k1
    "gognj"
    127.0.0.1:6379> lrange k1 0 -1
    1) "gognj"
    2) "gongj"
    

    以上所以只是均来自于大佬江南一点雨
    个人博客:[http://www.javaboy.org/]

    相关文章

      网友评论

          本文标题:Redis的基本类型之一:List

          本文链接:https://www.haomeiwen.com/subject/oiabcktx.html