美文网首页
golang redis 列表(list)用法 --- 2022

golang redis 列表(list)用法 --- 2022

作者: 一位先生_ | 来源:发表于2022-05-23 00:25 被阅读0次

    Redis列表是简单的字符串列表,列表是有序的,列表中的元素可以重复。

    可以添加一个元素到列表的头部(左边)或者尾部(右边)

    golang redis list数据操作常用函数:

    LPush - 从列表左边插入数据
    LPushX - 跟LPush的区别是,仅当列表存在的时候才插入数据
    RPop - 从列表的右边删除第一个数据,并返回删除的数据
    RPush - 从列表右边插入数据
    RPushX - 跟RPush的区别是,仅当列表存在的时候才插入数据
    LPop - 从列表左边删除第一个数据,并返回删除的数据
    LLen - 返回列表的大小
    LRange - 返回列表的一个范围内的数据,也可以返回全部数据
    LRem - 删除列表中的数据
    LIndex - 根据索引坐标,查询列表中的数据
    LInsert - 在指定位置插入数据
    1.LPush
    从列表左边插入数据

    // 插入一个数据
    client.LPush("key", "data1")
    
    // LPush支持一次插入任意个数据
    err := client.LPush("key", 1,2,3,4,5).Err()
    if err != nil {
        panic(err)
    }
    

    2.LPushX
    跟LPush的区别是,仅当列表存在的时候才插入数据,用法完全一样。

    3.RPop
    从列表的右边删除第一个数据,并返回删除的数据

    val, err := client.RPop("key").Result()
    if err != nil {
        panic(err)
    }
    
    fmt.Println(val)
    

    4.RPush
    从列表右边插入数据

    // 插入一个数据
    client.RPush("key", "data1")
    
    // 支持一次插入任意个数据
    err := client.RPush("key", 1,2,3,4,5).Err()
    if err != nil {
        panic(err)
    }
    

    5.RPushX
    跟RPush的区别是,仅当列表存在的时候才插入数据, 他们用法一样

    6.LPop
    从列表左边删除第一个数据,并返回删除的数据

    val, err := client.LPop("key").Result()
    if err != nil {
        panic(err)
    }
    
    fmt.Println(val)
    

    7.LLen
    返回列表的大小

    val, err := client.LLen("key").Result()
    if err != nil {
        panic(err)
    }
    
    fmt.Println(val)
    

    8.LRange
    返回列表的一个范围内的数据,也可以返回全部数据

    // 返回从0开始到-1位置之间的数据,意思就是返回全部数据
    vals, err := client.LRange("key",0,-1).Result()
    if err != nil {
        panic(err)
    }
    fmt.Println(vals)
    

    9.LRem
    删除列表中的数据

    // 从列表左边开始,删除100, 如果出现重复元素,仅删除1次,也就是删除第一个
    dels, err := client.LRem("key",1,100).Result()
    if err != nil {
        panic(err)
    }
    
    // 如果存在多个100,则从列表左边开始删除2个100
    client.LRem("key",2,100)
    
    
    // 如果存在多个100,则从列表右边开始删除2个100
    // 第二个参数负数表示从右边开始删除几个等于100的元素
    client.LRem("key",-2,100)
    
    // 如果存在多个100,第二个参数为0,表示删除所有元素等于100的数据
    client.LRem("key",0,100)
    

    10.LIndex
    根据索引坐标,查询列表中的数据

    // 列表索引从0开始计算,这里返回第6个元素
    val, err := client.LIndex("key",5).Result()
    if err != nil {
        panic(err)
    }
    
    fmt.Println(val)
    

    11.LInsert
    在指定位置插入数据

    // 在列表中5的前面插入4
    // before是之前的意思
    err := client.LInsert("key","before", 5, 4).Err()
    if err != nil {
        panic(err)
    }
    
    // 在列表中 tizi365 元素的前面插入 欢迎你
    client.LInsert("key","before", "tizi365", "欢迎你")
    
    // 在列表中 tizi365 元素的后面插入 2019
    client.LInsert("key","after", "tizi365", "2019")
    

    相关文章

      网友评论

          本文标题:golang redis 列表(list)用法 --- 2022

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