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


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM