gredis
组件支持两种方式来管理redis
配置和获取redis
对象,一种是通过配置组件+单例对象的方式;一种是模块化通过配置管理方法及对象创建方法。
绝大部分情况下推荐使用g.Redis单例方式来操作redis。因此同样推荐使用配置文件来管理Redis配置,在config.yaml中的配置示例如下:
# Redis 配置示例
redis:
# 单实例配置示例1
default:
address: 127.0.0.1:6379
db: 1
# 单实例配置示例2
cache:
address: 127.0.0.1:6379
db: 1
pass: 123456
idleTimeout: 600
# Redis 配置示例
redis:
# 集群模式配置方法
group:
address: 127.0.0.1:6379,127.0.0.1:6370
db: 1
配置项名称 | 是否必须 | 默认值 | 说明 |
address |
是 | - |
格式:地址:端口
支持Redis单实例模式和集群模式配置,使用,分隔多个地址。例如:
192.168.1.1:6379,192.168.1.2:6379
|
db |
否 | 0 |
数据库索引 |
pass |
否 | - |
访问授权密码 |
minIdle |
否 | 0 |
允许闲置的最小连接数 |
maxIdle |
否 | 10 |
允许闲置的最大连接数(0表示不限制) |
maxActive |
否 | 100 |
最大连接数量闲置(0表示不限制) |
idleTimeout |
否 | 10 |
连接最大空闲时间,使用时间字符串例如30s/1m/1d |
maxConnLifetime |
否 | 30 |
连接最长存活时间,使用时间字符串例如30s/1m/1d |
waitTimeout |
否 | 0 |
等待连接池连接的超时时间,使用时间字符串例如30s/1m/1d |
dialTimeout |
否 | 0 |
TCP 连接的超时时间,使用时间字符串例如30s/1m/1d |
readTimeout |
否 | 0 |
TCP 的Read 操作超时时间,使用时间字符串例如30s/1m/1d |
writeTimeout |
否 | 0 |
TCP 的Write 操作超时时间,使用时间字符串例如30s/1m/1d |
masterName |
否 | - |
哨兵模式下使用,设置MasterName |
tls |
否 | false |
是否使用TLS 认证 |
tlsSkipVerify |
否 | false |
通过TLS 连接时,是否禁用服务器名称验证 |
使用示例:
func main() {
var (
ctx = context.Background()
)
conn, _ := g.Redis().Conn(ctx)
conn.Do(ctx, "SET", "Key", "Value")
v, _ := conn.Do(ctx, "GET", "Key")
fmt.Println(v.String())
}
其中的default
和cache
分别表示配置分组名称,我们在程序中可以通过该名称获取对应配置的redis
单例对象。不传递分组名称时,默认使用redis.default
配置分组项来获取对应配置的redis
客户端单例对象。 执行后,输出结果为:
Value
由于GoFrame
是模块化的框架,除了可以通过耦合且便捷的g模块来自动解析配置文件并获得单例对象之外,也支持有能力的开发者模块化使用gredis
包。
gredis
提供了全局的分组配置功能,相关配置管理方法如下:
func SetConfig(config Config, name ...string)
func SetConfigByMap(m map[string]interface{}, name ...string) error
func GetConfig(name ...string) (config Config, ok bool)
func RemoveConfig(name ...string)
func ClearConfig()
其中name
参数为分组名称,即为通过分组来对配置对象进行管理,我们可以为不同的配置对象设置不同的分组名称,随后我们可以通过Instance
单例方法获取redis
客户端操作对象单例。
func Instance(name ...string) *Redis
使用示例:
package main
import (
"context"
"fmt"
"github.com/gogf/gf/v2/database/gredis"
"github.com/gogf/gf/v2/util/gconv"
)
var (
config = gredis.Config{
Address: "192.168.1.2:6379, 192.168.1.3:6379",
Db : 1,
}
ctx = context.Background()
)
func main() {
group := "test"
gredis.SetConfig(&config, group)
redis := gredis.Instance(group)
defer redis.Close(ctx)
_, err := redis.Do(ctx, "SET", "k", "v")
if err != nil {
panic(err)
}
r, err := redis.Do(ctx, "GET", "k")
if err != nil {
panic(err)
}
fmt.Println(gconv.String(r))
}
ASP.NET CheckBoxList RepeatDirection 属性 CheckBoxList 控件定义和用法 RepeatDirection 属性用于获取或设置 CheckBoxList 中...
ASP.NET Calendar SelectorStyle 属性 Calendar 控件定义和用法 SelectorStyle 属性用于设置或返回周和月选择器的样式。 语法asp...
ASP.NET Button UseSubmitBehavior 属性 Button 控件定义和用法 UseSubmitBehavior 属性规定 Button 控件使用客户端浏览器内建的...
本节我们一起来学习 ECharts 中 yAxis 是如何设置其坐标轴指示器的文本标签的。首先,需要将文本标签显示出来,使用的是 axisPoi...
polar.tooltip.formatter |string, Function提示框浮层内容格式器,支持字符串模板和回调函数两种形式。字符串模板模板变量有{a}...
visualMap[i]-piecewise.type |string[ default: piecewise ]设置视觉映射组件的类型为分段型。visualMap[i]-piecewise.show |bo...