[记录一]go-redis库学习笔记

71 阅读1分钟

redis第三方库

github.com/go-redis/redis 这个库自带连接池

*redis.Client

```// 声明全局变量
var redisdb *redis.Client

// Background返回一个非空的Context
var ctx = context.Background()


// 初始化连接
func iniRedis() (err error) {
	redisdb = redis.NewClient(&redis.Options{
		Addr: "127.0.0.1:6379",
		Password: "",
		DB: 0,
	})
	_, err = redisdb.Ping(ctx).Result()
	return
}

func main() {
	err := iniRedis()
	if err != nil {
		fmt.Printf("connect redis failed,err:%v\n", err)
		return
	}
	fmt.Println("连接成功")
        
        
        // ZAdd添加元素
	key := "rank"
	items := []redis.Z{
		{Score:90, Member: "PHP"},
		{Score:93, Member: "PYTHON"},
		{Score:95, Member: "GO"},
	}
	// 把元素都谁家到key
	redisdb.ZAdd(ctx, key, items...)
        
        
        // 给GO增加分数
	newScore, err := redisdb.ZIncrBy(ctx, key, 10.0, "GO").Result()
	if err != nil {
		fmt.Printf("zincrby failed,err%v\n", err)
		return
	}
	fmt.Printf("GO SCORE IS %v NOW\n", newScore)
}

Ping()内需要传值,不然会飘红

redis-clientZadd.jpg

redis-Client显示添加成功

zincrby.jpg

zrevrange <= 值递减从大到小