golang 操作 Redis

Sample Code

package main

import (
    "github.com/gomodule/redigo/redis"
    "fmt"
)

type RedisClient struct {
    Conn redis.Conn
}

func main() {
    conn,err := GetRedisConn()
    if err != nil {
        fmt.Printf("get redis conn failed,err:%v\n",err)
        return
    }

    client := RedisClient{Conn:conn}
    defer client.Conn.Close()

    // ZRANGE
    mp,err := client.ZrangeWithScores("test",0,-1)
    if err != nil {
        fmt.Print("command failed,err:%v\n",err)
    } else {
        fmt.Printf("command succ\n")
        for k,v := range mp {
            fmt.Printf("key:%s,value:%s\n",k,v)
        }
    }

    fmt.Println("done")
}

func GetRedisConn() (redis.Conn,error) {
    conn,err := redis.Dial("tcp","127.0.0.1:6379")
    if err != nil {
        return nil,err
    }

    _,err = conn.Do("AUTH","123456")
    if err != nil {
        return nil,err
    }

    return conn,nil
}

// key不存在时,error == nil
func (c *RedisClient) Get(key string) (string,error) {
    return redis.String(c.Conn.Do("GET",key))
}

// key不存在时,error == nil
func (c *RedisClient) ZrangeWithScores(key string,start,stop int) (map[string]string,error) {
    return redis.StringMap(c.Conn.Do("ZRANGE",key,start,stop,"WITHSCORES"))
}

First write it.

Guess you like

Origin www.cnblogs.com/wjz2047/p/10990759.html