我是靠谱客的博主 整齐鸵鸟,最近开发中收集的这篇文章主要介绍golang 实际项目中连接redis集群碰到的坑,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

       项目中redis直接是使用了aws的redis服务,redis是集群,也就是golang连接redis集群碰到的坑,如下

       首先我使用的是redisgo,因为看着api比较方便,比较像redis-cli,而且aws也推荐。然后一开始连接也没事,我部署了不下10遍,然而有一天部署时。服务器在操作redis时忽然报错。“(error) MOVED xxxx xxx.xxx.xxx.xxx:xxxx”,经过查询得知这是由于redis没有选择连接集群导致的,再次查询,发现aws官方推荐了两个redis库,redisgo和go-redis两个库,redisgo是不支持集群的(太坑了),而且我部署了那么多次都没问题。可能一直都连到master上了,忽然就连到slave就报错了。还好发现的早。

       go-redis/redis连接数据库的时候,官方的demo给的就是一堆端口,

import "github.com/go-redis/redis/v8"

rdb := redis.NewClusterClient(&redis.ClusterOptions{
    Addrs: []string{":7000", ":7001", ":7002", ":7003", ":7004", ":7005"},

    // To route commands by latency or randomly, enable one of the following.
    //RouteByLatency: true,
    //RouteRandomly: true,
})

      这个是可以填好多地址的,只要把自己的地址填入string的切片即可,如果只有一个地址,就只填一个(项目中redis集群可能对外只暴露一个地址)

clusterClient = redis.NewClusterClient(&redis.ClusterOptions{
	Addrs: []string{"your addr1"},
})

      redis.NewClusterClient这个接口默认是连接master的,如果只想连接slave,则通过参数控制,具体查看接口的说明即可。

      最后切换了包之后,成功解决了redis集群连接的问题。

最后

以上就是整齐鸵鸟为你收集整理的golang 实际项目中连接redis集群碰到的坑的全部内容,希望文章能够帮你解决golang 实际项目中连接redis集群碰到的坑所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部