登录
首页 >  Golang >  Go问答

golang从缓存中返回数据

来源:stackoverflow

时间:2024-03-02 20:27:25 295浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《golang从缓存中返回数据》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我的响应时间约为3秒,因此我想缩短响应时间。我想到的第一件事是从缓存返回,但我找不到任何框架或解释。我怎样才能实现它或者有其他解决方案吗?

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

我使用 postgresql 作为数据库,并在 for 循环中调用此代码:

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

解决方案


您的问题太宽泛,但根据上面的讨论,我相信您想要做的是从数据库加载某种静态数据,该数据将在您的程序中使用,并且不需要神清气爽。在这种情况下,在连接数据库一次并将其保存在包下的全局变量中时加载数据是有意义的。例如:

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 设置数据,并使用 model.getdata 以线程安全的方式获取数据。

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>