猿问

golang 从缓存中返回

我的响应时间大约是3秒,所以我想减少响应时间。我认为的第一件事是从缓存返回,但我找不到任何框架或解释。我怎样才能实现它或者是否有任何替代解决方案?

我应该使用这个框架: https ://github.com/mediocregopher/radix.v2

我正在使用postgresqlfor db 并在 for 循环中调用此代码:

err := GetDB().Table("table_name").Find(&words).Error


杨__羊羊
浏览 146回答 1
1回答

慕的地10843

您的问题过于宽泛,但基于上面的讨论,我相信您要做的是从将在您的程序中使用的数据库中加载某种静态数据,并且不需要刷新。在这种情况下,当您连接数据库一次时加载数据并将其保存在包下的全局变量中是有意义的。例如:package modelvar SomeData []SomeTypepackage mainfunc main() {  // Load data from the db  model.SomeData = loadedData  // Start the program...  }这假设model.SomeData在程序期间不会改变。例如,如果您需要定期重新加载它,则程序的更好结构是:package modelvar someData []SomeTypevar someDataLock sync.RWMutexfunc GetData() []SomeType {   someDataLock.RLock()   defer someDataLock.RUnlock()   return someData}func SetData(in []SomeType) {   someDataLock.Lock()   defer someDataLock.Unlock()   someData=in}然后你model.SetData用来设置数据,并model.GetData以线程安全的方式获取数据。
随时随地看视频慕课网APP

相关分类

Go
我要回答