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

10年積累的網(wǎng)站設(shè)計、成都網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有昭化免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
配置文件(推薦)
絕大部分情況下推薦使用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? | 數(shù)據(jù)庫索引 |
?pass? | 否 | ?-? | 訪問授權(quán)密碼 |
?minIdle? | 否 | ?0? | 允許閑置的最小連接數(shù) |
?maxIdle? | 否 | ?10? | 允許閑置的最大連接數(shù)(0表示不限制) |
?maxActive? | 否 | ?100? | 最大連接數(shù)量閑置(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? | 否 | ?-? | 哨兵模式下使用,設(shè)置?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?客戶端單例對象。 執(zhí)行后,輸出結(jié)果為:
Value
配置方法(高級)
由于?GOFrame?是模塊化的框架,除了可以通過耦合且便捷的g模塊來自動解析配置文件并獲得單例對象之外,也支持有能力的開發(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ù)為分組名稱,即為通過分組來對配置對象進行管理,我們可以為不同的配置對象設(shè)置不同的分組名稱,隨后我們可以通過?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))
} 網(wǎng)站欄目:創(chuàng)新互聯(lián)GoFrame教程:GoFrameNoSQLRedis-配置管理
網(wǎng)站鏈接:http://fisionsoft.com.cn/article/coogsdp.html


咨詢
建站咨詢
