GoFrame?gredis配置文件及配置方法對(duì)比
前言摘要
上一篇文章為大家介紹了 GoFrame gcache使用實(shí)踐 | 緩存控制 淘汰策略 ,得到了大家積極的反饋。
后續(xù)幾篇文章再接再厲,仍然為大家介紹GoFrame框架緩存相關(guān)的知識(shí)點(diǎn),以及自己項(xiàng)目使用中的一些總結(jié)思考,GoFrame框架下文簡(jiǎn)稱gf。
GoFrame gredis
goframe框架支持兩種方式來(lái)管理redis配置和獲取redis對(duì)象,一種是通過配置文件+單例對(duì)象的方式;一種是模塊化通過配置管理方法及對(duì)象創(chuàng)建方法。
而我們是使用的前者:通過配置文件+單例對(duì)象的方式。
配置文件(推薦)
絕大部分情況下推薦使用g.Redis單例方式來(lái)操作redis。
推薦使用配置文件來(lái)管理Redis配置,在config.toml中的配置示例如下:
# Redis數(shù)據(jù)庫(kù)配置
[redis]
default = "127.0.0.1:6379,0"
cache = "127.0.0.1:6379,1,123456?idleTimeout=600"
其中,Redis的配置格式為:
host:port[,db,pass?maxIdle=x&maxActive=x&idleTimeout=x&maxConnLifetime=x]
各配置項(xiàng)說(shuō)明如下:
| 配置項(xiàng)名稱 | 是否必須 | 默認(rèn)值 | 說(shuō)明 |
|---|---|---|---|
| host | 是 | - | 地址 |
| port | 是 | - | 端口 |
| db | 否 | 0 | 數(shù)據(jù)庫(kù) |
| pass | 否 | - | 授權(quán)密碼 |
| maxIdle | 否 | 10 | 允許閑置的連接數(shù)(0表示不限制) |
| maxActive | 否 | 100 | 最大連接數(shù)量限制(0表示不限制) |
| idleTimeout | 否 | 10 | 連接最大空閑時(shí)間(單位秒,不允許設(shè)置為0) |
| maxConnLifetime | 否 | 30 | 連接最長(zhǎng)存活時(shí)間(單位秒,不允許設(shè)置為0) |
| tls | 否 | false | 是否使用TLS認(rèn)證 |
| skipVerify | 否 | false | 通過TLS連接時(shí),是否禁用服務(wù)器名稱驗(yàn)證 |
其中的default和cache分別表示配置分組名稱,我們?cè)诔绦蛑锌梢酝ㄟ^該名稱獲取對(duì)應(yīng)配置的redis單例對(duì)象。
不傳遞分組名稱時(shí),默認(rèn)使用redis.default配置分組項(xiàng))來(lái)獲取對(duì)應(yīng)配置的redis客戶端單例對(duì)象。 執(zhí)行后,輸出結(jié)果為:
使用示例:
package main
import (
"fmt"
"github.com/gogf/gf/frame/g"
"github.com/gogf/gf/util/gconv"
)
func main() {
g.Redis().DoVar("SET", "k", "v")
v, _ := g.Redis().DoVar("GET", "k")
fmt.Println(v.String())
}
打印結(jié)果
v
配置方法(高級(jí))
由于gf是模塊化的框架,除了可以通過耦合且便捷的g模塊來(lái)自動(dòng)解析配置文件并獲得單例對(duì)象之外,也支持開發(fā)者模塊化使用gredis包。
但是這種用法對(duì)開發(fā)者的要求相對(duì)較高。
gredis提供了全局的分組配置功能,相關(guān)配置管理方法如下:
func SetConfig(config Config, name ...string) func GetConfig(name ...string) (config Config, ok bool) func RemoveConfig(name ...string) func ClearConfig()
其中name參數(shù)為分組名稱,即為通過分組來(lái)對(duì)配置對(duì)象進(jìn)行管理,我們可以為不同的配置對(duì)象設(shè)置不同的分組名稱,隨后我們可以通過Instance單例方法獲取redis客戶端操作對(duì)象單例。
func Instance(name ...string) *Redis
使用示例:
package main
import (
"fmt"
"github.com/gogf/gf/database/gredis"
"github.com/gogf/gf/util/gconv"
)
var (
config = gredis.Config{
Host : "127.0.0.1",
Port : 6379,
Db : 0,
}
)
func main() {
group := "test"
gredis.SetConfig(&config, group)
redis := gredis.Instance(group)
defer redis.Close()
_, err := redis.Do("SET", "k", "v")
if err != nil {
panic(err)
}
r, err := redis.Do("GET", "k")
if err != nil {
panic(err)
}
fmt.Println(gconv.String(r))
}
總結(jié)
gredis相關(guān)的知識(shí)點(diǎn)比較多,所以打算拆成多篇文章進(jìn)行更新。
這篇文章重點(diǎn)為大家介紹了gredis的配置方式:支持配置文件進(jìn)行管理,也支持通過配置方法進(jìn)行管理。
我們使用的官方推薦的配置文件管理方式:通過配置文件管理的方式也是支持分庫(kù)的,更多關(guān)于GoFrame gredis配置文件方法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- GoFrame框架使用避坑指南和實(shí)踐干貨
- GoFrame?gmap遍歷hashmap?listmap?treemap使用技巧
- 適合PHP同學(xué)的GoFrame框架使用體驗(yàn)及學(xué)習(xí)建議
- GoFrame?ORM原生方法操作示例
- GoFrame 框架緩存查詢結(jié)果的示例詳解
- GoFrame錯(cuò)誤處理常用方法及錯(cuò)誤碼使用示例
- GoFrame框架Scan類型轉(zhuǎn)換實(shí)例
- GoFrame通用類型變量gvar與interface基本使用對(duì)比
- GoFrame框架數(shù)據(jù)校驗(yàn)之校驗(yàn)對(duì)象校驗(yàn)結(jié)構(gòu)體
- GoLang編程必備:GoFrame?GoLand插件介紹
相關(guān)文章
使用Golang快速構(gòu)建出命令行應(yīng)用程序
在日常開發(fā)中,大家對(duì)命令行工具(CLI)想必特別熟悉了,如果說(shuō)你不知道命令工具,那你可能是個(gè)假開發(fā)。每天都會(huì)使用大量的命令行工具,例如最常用的Git、Go、Docker等,這篇文章主要介紹了使用Golang快速構(gòu)建出命令行應(yīng)用程序,需要的朋友可以參考下2023-02-02
Golang?基于flag庫(kù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單命令行工具
這篇文章主要介紹了Golang基于flag庫(kù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單命令行工具,Golang標(biāo)準(zhǔn)庫(kù)中的flag庫(kù)提供了解析命令行選項(xiàng)的能力,我們可以基于此來(lái)開發(fā)命令行工具,下文詳細(xì)介紹。需要的小伙伴可以參考一下2022-08-08
使用golang編寫一個(gè)并發(fā)工作隊(duì)列
這篇文章主要介紹了使用golang編寫一個(gè)并發(fā)工作隊(duì)列的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2021-05-05
GO語(yǔ)言的數(shù)組array與切片slice詳解
這篇文章主要介紹了GO語(yǔ)言的數(shù)組array與切片slice,包括了GO語(yǔ)言數(shù)組定義賦值,GO語(yǔ)言多維數(shù)組,GO語(yǔ)言切片等知識(shí)點(diǎn)需要的朋友可以參考下2022-12-12
Golang基于泛化調(diào)用與Nacos實(shí)現(xiàn)Dubbo代理
這篇文章主要為大家詳細(xì)介紹了Golang如何基于泛化調(diào)用與Nacos實(shí)現(xiàn)Dubbo代理,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2023-04-04
解決Golang 中使用WaitGroup的那點(diǎn)坑
這篇文章主要介紹了解決Golang 中使用WaitGroup的那點(diǎn)坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2021-04-04

