go-redis cluster 使用demo

坚强是说给别人听的谎言 提交于 2019-12-18 05:06:13
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上去,连接池会自动增加

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!