最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

GoFrame?gredis配置文件及配置方法對(duì)比

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

前言摘要

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

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

GoFrame gredis

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

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

配置文件(推薦)

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

推薦使用配置文件來管理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)說明如下:

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

其中的default和cache分別表示配置分組名稱,我們?cè)诔绦蛑锌梢酝ㄟ^該名稱獲取對(duì)應(yīng)配置的redis單例對(duì)象。

不傳遞分組名稱時(shí),默認(rèn)使用redis.default配置分組項(xiàng))來獲取對(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模塊來自動(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ù)為分組名稱,即為通過分組來對(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)文章!

相關(guān)文章

  • Go語(yǔ)言文件操作的方法

    Go語(yǔ)言文件操作的方法

    這篇文章主要介紹了Go語(yǔ)言文件操作的方法,涉及文件的讀寫及關(guān)閉等操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • Golang 如何解析和生成json

    Golang 如何解析和生成json

    這篇文章主要介紹了Golang 如何解析和生成json,幫助大家更好的理解和學(xué)習(xí)golang,感興趣的朋友可以了解下
    2020-09-09
  • Go與Rust高性能解析JSON實(shí)現(xiàn)方法示例

    Go與Rust高性能解析JSON實(shí)現(xiàn)方法示例

    這篇文章主要為大家介紹了Go與Rust高性能的解析JSON實(shí)現(xiàn)方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Golang實(shí)現(xiàn)拓?fù)渑判?DFS算法版)

    Golang實(shí)現(xiàn)拓?fù)渑判?DFS算法版)

    這篇文章主要介紹了Golang實(shí)現(xiàn)拓?fù)渑判?DFS算法版),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Golang二進(jìn)制反匯編問題

    Golang二進(jìn)制反匯編問題

    這篇文章主要介紹了Golang二進(jìn)制反匯編問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Go Java算法之同構(gòu)字符串示例詳解

    Go Java算法之同構(gòu)字符串示例詳解

    這篇文章主要為大家介紹了Go Java算法之同構(gòu)字符串示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Go語(yǔ)言中一些不常見的命令參數(shù)詳解

    Go語(yǔ)言中一些不常見的命令參數(shù)詳解

    這篇文章主要給大家介紹了關(guān)于Go語(yǔ)言中一些不常見的命令參數(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-12-12
  • Golang判斷struct/slice/map是否相等以及對(duì)比的方法總結(jié)

    Golang判斷struct/slice/map是否相等以及對(duì)比的方法總結(jié)

    平時(shí)開發(fā)中對(duì)比兩個(gè)struct或者map、slice是否相等是經(jīng)常遇到的,有很多對(duì)比的方式,比如==,reflect.DeepEqual(),cmp.Equal()等也是經(jīng)常容易混淆的,這么多種對(duì)比方式,適用場(chǎng)景和優(yōu)缺點(diǎn)都有哪些呢?今天我們來具體總結(jié)一下,感興趣的小伙伴們可以參考借鑒
    2022-11-11
  • Go語(yǔ)言的變量定義詳情

    Go語(yǔ)言的變量定義詳情

    這篇文章主要介紹了Go語(yǔ)言的變量定義詳情,go定義變量的方式和c,c++,java語(yǔ)法不一樣,var?變量名類型,var在前,變量名在中間,類型在后面,下文更多詳細(xì)內(nèi)容需要的小伙伴可以參考一下
    2022-03-03
  • 解決go echo后端處理跨域的兩種操作方式

    解決go echo后端處理跨域的兩種操作方式

    這篇文章主要介紹了解決go echo后端處理跨域的兩種操作方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評(píng)論

淅川县| 梁平县| 宕昌县| 康平县| 霍城县| 阳泉市| 文水县| 建瓯市| 瑞安市| 合肥市| 尤溪县| 洛阳市| 乌兰县| 扎兰屯市| 贵溪市| 东台市| 拜泉县| 定日县| 木兰县| 蒙自县| 绥滨县| 清水县| 威信县| 大丰市| 伽师县| 万州区| 仙桃市| 肃宁县| 晋江市| 略阳县| 宜城市| 长武县| 武冈市| 伊通| 陕西省| 临朐县| 红原县| 富平县| 疏勒县| 无极县| 固镇县|