Skip to main content

redis 插件

我们使用go-redis作为redis连接的SDK, 并且将其封装在xredis包中。我们也为其适配了自动注册的rredis包的实现。

如何使用

自动注册

在使用的过程中,我们只需要将rredis导入到主程序中,比如

import (
_ "path/to/r/rredis"
)

func main() {
.....
}

主程序运行过程中会根据配置中的数据,创建对应的实例,并且放到内存中。我们在使用的过程中,可以调用

cli := rredis.Get("ngo.client.redis.{name}")

直接拿到客户端,就可以使用了。

配置参数

参数类型含义默认值
Namestring用户需要保证名字唯一, 也是ngo.client.redis.{name}中的{name}
ConnTypestring连接类型,必须指定。包含clientclustersentinelsharded_sentinel四种类型。
Addr[]string地址列表,格式为host:port。如果是单实例只会取第一个。
MasterNames[]stringmaster名称,只当sentinelsharded_sentinel类型必填。如果是sentinel只会取第一个。
AutoGenShardNamebool自动生成分片名称,如果为false,默认使用MasterName, 只当sharded_sentinel类型使用。该字段用来兼容旧项目,非特殊情况请勿设置成true,否则在MasterNames顺序变化时会造成分配rehash
Usernamestring用于认证的用户名
Passwordstring用于认证的密码
DBnumber所使用的数据库
MaxRetriesnumber最大重试次数
MinRetryBackoffnumber最小重试间隔
MaxRetryBackoffnumber最大重试间隔
DialTimeoutnumber连接建立超时时间
ReadTimeoutnumber读超时,到时间返回失败而不是阻塞
WriteTimeoutnumbersocket写超时时间
PoolSizenumber最大socket连接数
MinIdleConnsnumber最小空闲连接数
MaxConnAgenumber客户端退出连接的期限
PoolTimeoutnumber客户端等待获取连接池连接时间
IdleTimeoutnumber空闲连接的超时关闭时间
IdleCheckFrequencynumber空闲连接的检测频率
EnableTracerbool是否开启tracing

配置举例

[[ngo.client.redis]]
name= "demo01"
connType="client"
addr=["127.0.0.1:6379"]
password="test"
db= 0

目前我们支持了同一个应用的多客户端, 因此你可以在toml配置文件中配置多个。