美文网首页
Redis学习之路(4)命令-list(列表)、set(集合)、

Redis学习之路(4)命令-list(列表)、set(集合)、

作者: William_Wei007 | 来源:发表于2018-09-03 15:12 被阅读41次

          Redis 数据类型

    Redis支持5种数据类型:

     string(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)
    

    本段介绍一下list(列表)。

    Redis 列表(List)

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

    1、LPUSH key value1 [value2] 将一个或多个值插入到列表头部
    
        127.0.0.1:6379[1]> lpush list_key value1 value2
        (integer) 2
    
    
    2、LPUSHX key value 将一个值插入到已存在的列表头部
        127.0.0.1:6379[1]> lpushx list_key value3 value4
        (error) ERR wrong number of arguments for 'lpushx' command
        127.0.0.1:6379[1]> lpushx list_key value3
        (integer) 3
        
    3、RPUSH key value1 [value2]  在列表中添加一个或多个值
        127.0.0.1:6379[1]> rpushx list_key value4
        (integer) 4
        127.0.0.1:6379[1]> lrange list_key 0 10
        1) "value3"
        2) "value2"
        3) "value1"
        4) "value4"
       
    4、  RPUSHX key value 为已存在的列表添加值
        127.0.0.1:6379[1]> rpush list_key value5 value6
        (integer) 6
        127.0.0.1:6379[1]> lrange list_key 0 10
        1) "value3"
        2) "value2"
        3) "value1"
        4) "value4"
        5) "value5"
        6) "value6"
    
    
    5、LLEN key  获取列表长度
        127.0.0.1:6379[1]> llen list_key
        (integer) 6
        
    6、LINDEX key index 
    通过索引获取列表中的元素   
        127.0.0.1:6379[1]> lrange list_key 0 10
        1) "value3"
        2) "value2"
        3) "value1"
        4) "value4"
        5) "value5"
        6) "value6"
        
        127.0.0.1:6379[1]> lindex list_key 5
        "value6" 
        下标从 0 开始 
    
    7、  LINSERT key BEFORE|AFTER sourceValue targetValue 
    在列表的元素前或者后插入元素
        127.0.0.1:6379[1]> linsert list_key before value2 value7
        (integer) 7
        127.0.0.1:6379[1]> lrange list_key 0 10
        1) "value3"
        2) "value7"
        3) "value2"
        4) "value1"
        5) "value4"
        6) "value5"
        7) "value6"
    
    8、LRANGE key start stop 
    获取列表指定范围内的元素
        127.0.0.1:6379[1]> lrange list_key 0 10
        1) "value3"
        2) "value7"
        3) "value2"
        4) "value1"
        5) "value4"
        6) "value5"
        7) "value6"
        
    9、LSET key index value  通过索引设置列表元素的值
        127.0.0.1:6379[1]> lrange list_key 0 10
        1) "value3"
        2) "value7"
        3) "value2"
        4) "value1"
        5) "value4"
        6) "value5"
        7) "value6"
        127.0.0.1:6379[1]> lset list_key 5 value8
        OK
        127.0.0.1:6379[1]> lrange list_key 0 10
        1) "value3"
        2) "value7"
        3) "value2"
        4) "value1"
        5) "value4"
        6) "value8"
        7) "value6"    
     设置之后, 会将原来的值替换掉value5->value8
     
    10、LTRIM key start stop 
    对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
        127.0.0.1:6379[1]> lrange list_key 0 10
        1) "value3"
        2) "value7"
        3) "value2"
        4) "value1"
        5) "value4"
        6) "value8"
        7) "value6"
        127.0.0.1:6379[1]> ltrim list_key 3 5
        OK
        127.0.0.1:6379[1]> lrange list_key 0 10
        1) "value1"
        2) "value4"
        3) "value8"
     取子集:下标为3到5的集合。 包含list_key[5]
    
    11、LPOP key  移出并获取列表的第一个元素
        127.0.0.1:6379[1]> lrange list_key 0 10
        1) "value1"
        2) "value4"
        3) "value8"
        127.0.0.1:6379[1]> lpop list_key 
        "value1"
    
    12、rpop pkey  移出并获取列表的最后一个 元素
        127.0.0.1:6379[1]> rpop list_key
        "value8"
        
    13、RPOPLPUSH source destination 
    移除列表的最后一个元素,并将该元素添加到另一个列表并返回    
        127.0.0.1:6379[1]> rpoplpush list_key list_new_key
        "value4"
        127.0.0.1:6379[1]> lrange list_key 0 10
        (empty list or set)
        127.0.0.1:6379[1]> lrange list_new_key 0 10
        1) "value4"
        
    14、BLPOP key1 [key2 ] timeout 
    移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
        127.0.0.1:6379[1]> blpop list_key  1000
        1) "list_key"
        2) "value9"
      返回一个含有两个元素的列表,第一个元素是被弹出元素所属的 key ,第二个元素是被弹出元素的值。      
    
    15  BRPOP key1 [key2 ] timeout 
    移出并获取列表的最后一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
        127.0.0.1:6379[1]> brpop list_key 1000
        1) "list_key"
        2) "value11"
        
    16  BRPOPLPUSH source destination timeout 
    从列表中弹出一个值,将弹出的元素插入到另外一个列表中并返回它; 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
        127.0.0.1:6379[1]> brpoplpush list_key list_new_key 1000
        "value10"
        127.0.0.1:6379[1]> lrange list_key 0 -1
        (empty list or set)
        127.0.0.1:6379[1]> lrange list_new_key 0 -1
        1) "value10"
        2) "value4"
        
    
    
    

    上一篇:Redis学习之路(四)-hash(哈希)的操作命令           下一篇: 暂无

    相关文章

      网友评论

          本文标题:Redis学习之路(4)命令-list(列表)、set(集合)、

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