Golang使用Redis示例

github.com/gomodule/redigo/redis

package main

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

// Background返回一个非空的Context。 它永远不会被取消,没有值,也没有期限。
// 它通常在main函数,初始化和测试时使用,并用作传入请求的顶级上下文。
func main() {
	c, err := redis.Dial("tcp", "127.0.0.1:6379")
	if err != nil {
		fmt.Println("Connect to redis error", err)
		return
	}
	defer c.Close()
	_, err = c.Do("SET", "mykey", "Test001")
	if err != nil {
		fmt.Println("redis set failed:", err)
	}

	username, err := redis.String(c.Do("GET", "mykey"))
	if err != nil {
		fmt.Println("redis get failed:", err)
	} else {
		fmt.Printf("Get mykey: %v \n", username)
	}
}
	// Output: Get mykey: Test001


github.com/go-redis/redis/v8

package main

import (
	"context"
	"fmt"
	"github.com/go-redis/redis/v8"
)

func main() {
	ctx := context.Background()

	rdb := redis.NewClient(&redis.Options{
		Addr: "127.0.0.1:6379",
		//Password: "", // no password set
		//DB:       0,  // use default DB
	})

	err := rdb.Set(ctx, "aa", "value", 0).Err()
	if err != nil {
		panic(err)
	}

	val, err := rdb.Get(ctx, "aa").Result()
	if err != nil {
		panic(err)
	}
	fmt.Println("aa", val)

	val2, err := rdb.Get(ctx, "key2").Result()
	if err == redis.Nil {
		fmt.Println("key2 does not exist")
	} else if err != nil {
		panic(err)
	} else {
		fmt.Println("key2", val2)
	}
	// Output: aa value
	// key2 does not exist
}