gpt4 book ai didi

postgresql - 从缓存返回的golang

转载 作者:行者123 更新时间:2023-12-01 22:32:19 25 4
gpt4 key购买 nike

我的响应时间大约是 3 ozt_rstrong秒,因此我想减少响应时间。我认为的第一件事是从缓存中返回,但是我找不到任何框架或解释。我该如何实现?或者有其他替代解决方案吗?
我应该使用这个框架:
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以线程安全的方式获取数据。

关于postgresql - 从缓存返回的golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62866855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com