亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

GoFrame?gredis配置文件及配置方法對比

 更新時間:2022年06月13日 09:12:01   作者:王中陽Go  
這篇文章主要為大家介紹了GoFrame?gredis配置管理中,配置文件及配置方法對比,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

前言摘要

上一篇文章為大家介紹了 GoFrame gcache使用實踐 | 緩存控制 淘汰策略 ,得到了大家積極的反饋。

后續(xù)幾篇文章再接再厲,仍然為大家介紹GoFrame框架緩存相關的知識點,以及自己項目使用中的一些總結思考,GoFrame框架下文簡稱gf。

GoFrame gredis

goframe框架支持兩種方式來管理redis配置和獲取redis對象,一種是通過配置文件+單例對象的方式;一種是模塊化通過配置管理方法及對象創(chuàng)建方法。

而我們是使用的前者:通過配置文件+單例對象的方式。

配置文件(推薦)

絕大部分情況下推薦使用g.Redis單例方式來操作redis。

推薦使用配置文件來管理Redis配置,在config.toml中的配置示例如下:

# Redis數(shù)據(jù)庫配置
[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]

各配置項說明如下:

配置項名稱是否必須默認值說明
host-地址
port-端口
db0數(shù)據(jù)庫
pass-授權密碼
maxIdle10允許閑置的連接數(shù)(0表示不限制)
maxActive100最大連接數(shù)量限制(0表示不限制)
idleTimeout10連接最大空閑時間(單位秒,不允許設置為0)
maxConnLifetime30連接最長存活時間(單位秒,不允許設置為0)
tlsfalse是否使用TLS認證
skipVerifyfalse通過TLS連接時,是否禁用服務器名稱驗證

其中的default和cache分別表示配置分組名稱,我們在程序中可以通過該名稱獲取對應配置的redis單例對象。

不傳遞分組名稱時,默認使用redis.default配置分組項)來獲取對應配置的redis客戶端單例對象。 執(zhí)行后,輸出結果為:

使用示例:

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())
}

打印結果

v

配置方法(高級)

由于gf是模塊化的框架,除了可以通過耦合且便捷的g模塊來自動解析配置文件并獲得單例對象之外,也支持開發(fā)者模塊化使用gredis包。

但是這種用法對開發(fā)者的要求相對較高。

gredis提供了全局的分組配置功能,相關配置管理方法如下:

func SetConfig(config Config, name ...string)
func GetConfig(name ...string) (config Config, ok bool)
func RemoveConfig(name ...string)
func ClearConfig()

其中name參數(shù)為分組名稱,即為通過分組來對配置對象進行管理,我們可以為不同的配置對象設置不同的分組名稱,隨后我們可以通過Instance單例方法獲取redis客戶端操作對象單例。

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))
}

總結

gredis相關的知識點比較多,所以打算拆成多篇文章進行更新。

這篇文章重點為大家介紹了gredis的配置方式:支持配置文件進行管理,也支持通過配置方法進行管理。

我們使用的官方推薦的配置文件管理方式:通過配置文件管理的方式也是支持分庫的,更多關于GoFrame gredis配置文件方法的資料請關注腳本之家其它相關文章!

相關文章

  • go:垃圾回收GC觸發(fā)條件詳解

    go:垃圾回收GC觸發(fā)條件詳解

    這篇文章主要介紹了go:垃圾回收GC觸發(fā)條件詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • 使用Golang快速構建出命令行應用程序

    使用Golang快速構建出命令行應用程序

    在日常開發(fā)中,大家對命令行工具(CLI)想必特別熟悉了,如果說你不知道命令工具,那你可能是個假開發(fā)。每天都會使用大量的命令行工具,例如最常用的Git、Go、Docker等,這篇文章主要介紹了使用Golang快速構建出命令行應用程序,需要的朋友可以參考下
    2023-02-02
  • Golang?基于flag庫實現(xiàn)一個簡單命令行工具

    Golang?基于flag庫實現(xiàn)一個簡單命令行工具

    這篇文章主要介紹了Golang基于flag庫實現(xiàn)一個簡單命令行工具,Golang標準庫中的flag庫提供了解析命令行選項的能力,我們可以基于此來開發(fā)命令行工具,下文詳細介紹。需要的小伙伴可以參考一下
    2022-08-08
  • 使用golang編寫一個并發(fā)工作隊列

    使用golang編寫一個并發(fā)工作隊列

    這篇文章主要介紹了使用golang編寫一個并發(fā)工作隊列的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • GO語言的數(shù)組array與切片slice詳解

    GO語言的數(shù)組array與切片slice詳解

    這篇文章主要介紹了GO語言的數(shù)組array與切片slice,包括了GO語言數(shù)組定義賦值,GO語言多維數(shù)組,GO語言切片等知識點需要的朋友可以參考下
    2022-12-12
  • Golang中slice刪除元素的性能對比

    Golang中slice刪除元素的性能對比

    go沒有對刪除切片元素提供專用的語法或者接口,需要使用切片本身的特性來刪除元素,下面這篇文章主要給大家介紹了關于Golang中slice刪除元素的性能對比,需要的朋友可以參考下
    2022-06-06
  • 深入了解GoLang中的工廠設計模式

    深入了解GoLang中的工廠設計模式

    這篇文章主要介紹了深入了解GoLang中的工廠設計模式,工廠模式是一種常用的設計模式,它屬于創(chuàng)建型模式,它的主要目的是封裝對象的創(chuàng)建過程,將對象的創(chuàng)建過程與對象的使用過程分離,從而提高代碼的可維護性和可擴展性,需要詳細了解可以參考下文
    2023-05-05
  • Go保證并發(fā)安全底層實現(xiàn)詳解

    Go保證并發(fā)安全底層實現(xiàn)詳解

    這篇文章主要為大家介紹了Go保證并發(fā)安全底層實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-09-09
  • Golang基于泛化調用與Nacos實現(xiàn)Dubbo代理

    Golang基于泛化調用與Nacos實現(xiàn)Dubbo代理

    這篇文章主要為大家詳細介紹了Golang如何基于泛化調用與Nacos實現(xiàn)Dubbo代理,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-04-04
  • 解決Golang 中使用WaitGroup的那點坑

    解決Golang 中使用WaitGroup的那點坑

    這篇文章主要介紹了解決Golang 中使用WaitGroup的那點坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論