新聞中心
?gredis?組件支持兩種方式來管理?redis?配置和獲取?redis?對(duì)象,一種是通過配置組件+單例對(duì)象的方式;一種是模塊化通過配置管理方法及對(duì)象創(chuàng)建方法。

10年積累的網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作經(jīng)驗(yàn),可以快速應(yīng)對(duì)客戶對(duì)網(wǎng)站的新想法和需求。提供各種問題對(duì)應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識(shí)你,你也不認(rèn)識(shí)我。但先網(wǎng)站設(shè)計(jì)后付款的網(wǎng)站建設(shè)流程,更有昭化免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
配置文件(推薦)
絕大部分情況下推薦使用g.Redis單例方式來操作redis。因此同樣推薦使用配置文件來管理Redis配置,在config.yaml中的配置示例如下:
單實(shí)例配置
# Redis 配置示例
redis:
# 單實(shí)例配置示例1
default:
address: 127.0.0.1:6379
db: 1
# 單實(shí)例配置示例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
配置項(xiàng)說明
| 配置項(xiàng)名稱 | 是否必須 | 默認(rèn)值 | 說明 |
?address? | 是 | ?-? | 格式:?地址:端口? 支持Redis單實(shí)例模式和集群模式配置,使用,分隔多個(gè)地址。例如: ?192.168.1.1:6379,192.168.1.2:6379 ? |
?db? | 否 | ?0? | 數(shù)據(jù)庫索引 |
?pass? | 否 | ?-? | 訪問授權(quán)密碼 |
?minIdle? | 否 | ?0? | 允許閑置的最小連接數(shù) |
?maxIdle? | 否 | ?10? | 允許閑置的最大連接數(shù)(0表示不限制) |
?maxActive? | 否 | ?100? | 最大連接數(shù)量閑置(0表示不限制) |
?idleTimeout? | 否 | ?10? | 連接最大空閑時(shí)間,使用時(shí)間字符串例如?30s/1m/1d? |
?maxConnLifetime? | 否 | ?30? | 連接最長(zhǎng)存活時(shí)間,使用時(shí)間字符串例如?30s/1m/1d? |
?waitTimeout? | 否 | ?0? | 等待連接池連接的超時(shí)時(shí)間,使用時(shí)間字符串例如?30s/1m/1d? |
?dialTimeout? | 否 | ?0? | ?TCP?連接的超時(shí)時(shí)間,使用時(shí)間字符串例如?30s/1m/1d? |
?readTimeout? | 否 | ?0? | ?TCP?的?Read?操作超時(shí)時(shí)間,使用時(shí)間字符串例如?30s/1m/1d? |
?writeTimeout? | 否 | ?0? | ?TCP?的?Write?操作超時(shí)時(shí)間,使用時(shí)間字符串例如?30s/1m/1d? |
?masterName? | 否 | ?-? | 哨兵模式下使用,設(shè)置?MasterName? |
?tls? | 否 | ?false? | 是否使用?TLS?認(rèn)證 |
?tlsSkipVerify? | 否 | ?false? | 通過?TLS?連接時(shí),是否禁用服務(wù)器名稱驗(yàn)證 |
使用示例:
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?分別表示配置分組名稱,我們?cè)诔绦蛑锌梢酝ㄟ^該名稱獲取對(duì)應(yīng)配置的?redis?單例對(duì)象。不傳遞分組名稱時(shí),默認(rèn)使用?redis.default?配置分組項(xiàng)來獲取對(duì)應(yīng)配置的?redis?客戶端單例對(duì)象。 執(zhí)行后,輸出結(jié)果為:
Value
配置方法(高級(jí))
由于?GOFrame?是模塊化的框架,除了可以通過耦合且便捷的g模塊來自動(dòng)解析配置文件并獲得單例對(duì)象之外,也支持有能力的開發(fā)者模塊化使用?gredis?包。
?gredis?提供了全局的分組配置功能,相關(guān)配置管理方法如下:
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?參數(shù)為分組名稱,即為通過分組來對(duì)配置對(duì)象進(jìn)行管理,我們可以為不同的配置對(duì)象設(shè)置不同的分組名稱,隨后我們可以通過?Instance?單例方法獲取?redis?客戶端操作對(duì)象單例。
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))
} 網(wǎng)站標(biāo)題:創(chuàng)新互聯(lián)GoFrame教程:GoFrameNoSQLRedis-配置管理
網(wǎng)站網(wǎng)址:http://www.5511xx.com/article/coogsdp.html


咨詢
建站咨詢
