Golang连接redis时遇到的坑

背景

现在公司项目大量使用go语言开发,Redis则是常用的kv数据库,我们使用aws的Redis托管服务,在项目开发过程中,很多项目组在开发初期选择了redigo来操作redis, 对于主从版的redis来讲不会有任何问题,但是当用户量增加,需要使用aws redis cluster时,才发现redigo是不支持cluster的。

解决方法

在发现这个问题后,很多项目组改用了go-redis/redis这个库,而且目前线上运行良好。
追加:
20210326
发现一个问题,当从aws集群中删除一个分片,程序在重启之前会有连接到已经被删除的分片地址的情况,导致timeout

反思

1.在使用一个库或工具时,要做好调研,如果使用前看过文档,就能发现redigo不支持cluster的问题
2.不同云厂商提供的服务也不尽相同,据说阿里云的redis cluster前面默认给做了处理,使用redigo也没有问题。

Redis对于不同语言的支持信息

https://redis.io/clients#go

posted @ 2020-10-09 16:19  AlexGuoMe  阅读(2809)  评论(0编辑  收藏  举报