package main
import (
"context"
"fmt"
"github.com/go-redis/redis/v8"
)
var ctx = context.Background()
func main() {
rdb := redis.NewClient(&redis.Options{
Addr: "localhost:6379",
Password: "", // no password set
DB: 0, // use default DB
})
_, err := rdb.Ping(ctx).Result()
if err != nil {
fmt.Println("redis ping => ", err)
return
}
// testString(rdb)
testZSet(rdb)
}
// redis string
func testString(rdb *redis.Client) {
err := rdb.Set(ctx, "key", "value", 0).Err()
if err != nil {
panic(err)
}
val, err := rdb.Get(ctx, "key").Result()
if err != nil {
panic(err)
}
fmt.Println("key", 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)
}
}
func testZSet(rdb *redis.Client) {
key := "rank"
// add 10 elem
var elems []redis.Z
for i := 10; i >= 0; i-- {
uid := fmt.Sprintf("uid:%d", i+1)
elem := &redis.Z{
Score: float64(i) + 10,
Member: uid,
}
rdb.ZAdd(ctx, key, elem)
elems = append(elems, *elem)
}
fmt.Printf("before sort => %v\n", elems)
sortElems, err := rdb.ZRangeWithScores(ctx, key, 0, 10).Result()
if err != nil {
fmt.Println(err)
return
}
fmt.Printf("sort rank => %v\n", sortElems)
}
评论