第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

golang 從緩存中返回

golang 從緩存中返回

Go
楊__羊羊 2022-06-13 17:20:23
我的響應時間大約是3秒,所以我想減少響應時間。我認為的第一件事是從緩存返回,但我找不到任何框架或解釋。我怎樣才能實現(xiàn)它或者是否有任何替代解決方案?我應該使用這個框架: https ://github.com/mediocregopher/radix.v2我正在使用postgresqlfor db 并在 for 循環(huán)中調(diào)用此代碼:err := GetDB().Table("table_name").Find(&words).Error
查看完整描述

1 回答

?
慕的地10843

TA貢獻1785條經(jīng)驗 獲得超8個贊

您的問題過于寬泛,但基于上面的討論,我相信您要做的是從將在您的程序中使用的數(shù)據(jù)庫中加載某種靜態(tài)數(shù)據(jù),并且不需要刷新。在這種情況下,當您連接數(shù)據(jù)庫一次時加載數(shù)據(jù)并將其保存在包下的全局變量中是有意義的。例如:


package model


var SomeData []SomeType

package main


func main() {

  // Load data from the db

  model.SomeData = loadedData

  // Start the program...  

}

這假設model.SomeData在程序期間不會改變。例如,如果您需要定期重新加載它,則程序的更好結構是:


package model


var someData []SomeType

var someDataLock sync.RWMutex


func GetData() []SomeType {

   someDataLock.RLock()

   defer someDataLock.RUnlock()

   return someData

}


func SetData(in []SomeType) {

   someDataLock.Lock()

   defer someDataLock.Unlock()

   someData=in

}

然后你model.SetData用來設置數(shù)據(jù),并model.GetData以線程安全的方式獲取數(shù)據(jù)。


查看完整回答
反對 回復 2022-06-13
  • 1 回答
  • 0 關注
  • 116 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號