golang操作Redis

示例代码

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()

	value,err := client.ZrangeWithScoresInSlice("zset-key",0,-1)
	if err != nil {
		fmt.Printf("shit happend,err:%v\n",err)
	} else {
		fmt.Printf("ok,value is:\n")
		for i := 0; i < len(value); i += 2 {
			fmt.Printf("member:%s,score:%s\n",value[i],value[i+1])
		}
	}

	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"))
}

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

先写这么多吧。

posted @ 2019-06-08 15:10  恶劣天气  阅读(785)  评论(0编辑  收藏  举报