首先我们需要安装一下依赖包Redisgo
go get github.com/garyburd/redigo/redis
go语言依赖安装失败
我们可以先设置代理来提高网上避免响应超时
然后可能还是会安装失败
这个时候查看go环境

go env -w GOSUMDB=off 执行这个之后就可以解决以上出现的问题
如果设置了 GOSUMDB 为 “off” 或者使用 go get 的时候启用了-insecure参数,Go 不会去对下载的依赖包做安全校验,存在一定的安全隐患,所以给大家推荐接下来的环境变量。
GOSUMDB相当于一个依赖包的安装保护吧
经过自己一段时间的摸索就直接给大家呈现最容易理解的Redis连接池,说白了就是定义所需要的函数,在需要的时候引用该包的定义函数
go-redis模块自带连接池
Ctrl +点击 Pool 会跳转到该结构体 ,具体参数可以自己一个个仔细查看。

package RedisPool
import (
"github.com/garyburd/redigo/redis"
)
var RedisPool *redis.Pool
func GetRedisConn() redis.Conn {
if RedisPool == nil {
RedisPool = &redis.Pool{
MaxIdle: 16, //最初的连接数量
MaxActive: 0, //连接池最大连接数量,不确定可以用0(0表示自动定义),按需分配
IdleTimeout: 300, //连接关闭时间 300秒 (300秒不使用自动关闭)
Dial: func() (redis.Conn, error) {
conn, err := redis.Dial("tcp", "xx.xxx.xxx.xxx:xxxx")
if _, err := conn.Do("AUTH", "连接池密码"); err != nil {
conn.Close()
}
return conn, err
},
}
}
return RedisPool.Get() //获取连接
}
//关闭释放池使用的资源
func CloseRedis() {
if RedisPool != nil {
RedisPool.Close()
}
}
//读取Redis数据库指定的值
func ReadRedis(name string) (score string, err error) {
conn := GetRedisConn()
reply, err := conn.Do("get", name)
if err != nil {
panic(err)
}
score, err = redis.String(reply, err) //Int 是将命令回复转换为整数的帮助程序
return score, err
}
//往Redis写入指定一个值
func WriteRedis(name string, score string) {
conn := GetRedisConn()
_, err := conn.Do("setnx", name, score)
if err != nil {
panic(err)
}
}
//删除对应的键值
func MoveRedis(name string, num int) error {
conn := GetRedisConn()
_, err := conn.Do("move", name, num)
if err != nil {
panic(err)
}
return err
}
本文介绍了如何在Go语言中配置和使用Redis连接池,包括设置代理以解决依赖安装问题,解析GOSUMDB环境变量的作用,以及展示了一个简单的RedisPool实现。通过Dial函数建立连接,并提供了获取、关闭连接及执行Redis操作的方法,如读取、写入和删除键值。
8万+

被折叠的 条评论
为什么被折叠?



