安装Redis客户端

Go语言中使用第三方库https://github.com/go-redis/redis连接Redis数据库并进行操作。使用以下命令下载并安装:

go get github.com/go-redis/redis/v8

注:导入时指定了版本v8,忽略版本是一个常见错误

连接redis

说明:Background返回一个非空的Context。 它永远不会被取消,没有值,也没有期限。 它通常在main函数,初始化和测试时使用,并用作传入请求的顶级上下文。

示例:

package main

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

//Background返回一个非空的Context。 它永远不会被取消,没有值,也没有期限。 
//它通常在main函数,初始化和测试时使用,并用作传入请求的顶级上下文。
var ctx = context.Background()

func main() {
    rdb := redis.NewClient(&redis.Options{
        Addr:     "172.16.147.128:6379",
        Password: "",
        DB:       0,
    })

    pong, err := rdb.Ping(ctx).Result()
    if err != nil {
        fmt.Printf("连接redis出错,错误信息:%v", err)
    }
    fmt.Println("成功连接redis")
}

基本指令

Set():设置

仅仅支持字符串(包含数字)操作,不支持内置数据编码功能。如果需要存储Go的非字符串类型,需要提前手动序列化,获取时再反序列化。

示例:

package main

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

var ctx = context.Background()

func main() {
    rdb := redis.NewClient(&redis.Options{
        Addr:     "172.16.147.128:6379",
        Password: "",
        DB:       0,
    })

    _, err := rdb.Ping(ctx).Result()
    //fmt.Println(pong, err)
    if err != nil {
        fmt.Printf("连接redis出错,错误信息:%v", err)
        return
    }
    //Set方法的最后一个参数表示过期时间,0表示永不过期
    err = rdb.Set(ctx, "key1", "value1", 0).Err()
    if err != nil {
        panic(err)
    }

    //key2将会在两分钟后过期失效
    err = rdb.Set(ctx, "key2", "value2", time.Minute * 2).Err()
    if err != nil {
        panic(err)
    }
}

来源:https://www.cnblogs.com/itbsl/p/14198111.html