go-redis cluster 使用demo

Posted liuyidiao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go-redis cluster 使用demo相关的知识,希望对你有一定的参考价值。

package main

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

func main() {
	client := redis.NewClusterClient(&redis.ClusterOptions{
		Addrs:    []string{"redis-cluster.test.com:port"}, //set redis cluster url
		Password: "mypassword",                    //set password 
	})
	
	pong, err := client.Ping().Result()
	fmt.Println(pong, err)
	fmt.Println("pool state init state:", client.PoolStats())
	for i := 0; i < 1000; i++ {
		k := fmt.Sprintf("key:%d", i)
		v := k
		val, err := client.Set(k, v, 60*time.Second).Result()
		if err != nil {
			panic(err)
		}

		val, err = client.Get(k).Result()
		if err != nil {
			panic(err)
		}
		fmt.Println("key:", val)
	}
	fmt.Println("pool state final state:", client.PoolStats()) //获取客户端连接池相关信息

}

 总结:go-redis的连接池无需单独管理,在初始化时会自动根据cpu个数分配,本demo中跑了个循环,所以设置的key会分别打到不同的node上去,连接池会自动增加

以上是关于go-redis cluster 使用demo的主要内容,如果未能解决你的问题,请参考以下文章

go-redis

golang常用库包:缓存redis操作库go-redis使用(03)-高级数据结构和其它特性

go-redis 基于beego正确使用序列化存储数据和反序列化获取数据

go-redis

Go语言连接Redis之go-redis使用指南

Go语言连接Redis之go-redis使用指南