package main
import (
"fmt"
"context"
"github.com/go-redis/redis/v8"
"time"
)
//go get github.com/go-redis/redis/v8
var ctx = context.Background()
func main() {
//redis1()
redis2()
}
func redis1(){
checkErr := func (err error) {
if err != nil {
panic(err)
}
}
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password set
DB: 0, // use default DB
})
err := rdb.Set(ctx, "hao", "123", 0).Err()
checkErr(err)
val, err := rdb.Get(ctx, "hao").Result()
checkErr(err)
fmt.Println("hao is ", val)
val2, err := rdb.Get(ctx, "hao2").Result()
if err == redis.Nil {
fmt.Println("hao2 does not exist")
} else if err != nil {
panic(err)
} else {
fmt.Println("hao2 is ", val2)
}
// Output: key value
// key2 does not exist
}
func redis2(){
checkErr := func (err error) {
if err != nil {
panic(err)
}
}
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password set
DB: 0, // use default DB
})
//true/false 已存在false
set, err := rdb.SetNX(ctx, "key", "1234", 10*time.Second).Result()
checkErr(err)
fmt.Println(set)
err2 := rdb.Set(ctx, "score", 10, 0).Err()
checkErr(err2)
val, err := rdb.Get(ctx, "score").Result()
checkErr(err)
fmt.Println("score is ", val)
}