美文网首页
redisgo 使用详解

redisgo 使用详解

作者: 剑心zzw | 来源:发表于2020-08-06 23:38 被阅读0次

    HASH操作

    1. hgetall

    func main() {
       conn, err := redis.Dial("tcp", "127.0.0.1:6379")
       if err != nil {
           fmt.Println("Connect to redis error", err)
           return
       } else {
           fmt.Println("Connect to redis ok.")
       }
    
       // 函数退出时关闭连接
       defer conn.Close()
    
       personMap := make(map[int]Person)
       conn.Send("MULTI")
       for i := 0; i < 50; i++ {
           key := fmt.Sprintf("test_%d", i)
           conn.Send("HGETALL", key)
       }
       values, err := redis.Values(conn.Do("EXEC"))
       for _, value := range values {
           p_map, _ := redis.StringMap(value, nil)
           for key, v := range p_map {
               var person Person
               json.Unmarshal([]byte(v), &person)
               fmt.Println(key, person)
               id, _ := strconv.Atoi(key)
               personMap[id] = person
           }
       }
    }
    
    

    ZSET 操作

    1. ZREVRANK

    func main() {
        conn, err := redis.Dial("tcp", "127.0.0.1:6379")
        if err != nil {
            fmt.Println("Connect to redis error", err)
            return
        } else {
            fmt.Println("Connect to redis ok.")
        }
    
        // 函数退出时关闭连接
        defer conn.Close()
        ids := []int{1, 2, 3, 4}
        key := "test"
        conn.Send("MULTI")
        for _, id := range ids {
            conn.Send("ZREVRANK", key, id)
        }
        values, err := redis.Values(conn.Do("EXEC"))
        if err != nil {
            return
        }
        for i, id := range ids {
            value := values[i*2]
            if value == nil {
                continue
            }
            rank := value.(int64) + 1
            fmt.Println(id, rank)
        }
    }
    

    相关文章

      网友评论

          本文标题:redisgo 使用详解

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