我目前正在借助 Revel Web 框架用 Go 编写一个 Web 应用程序。我已经到了想要从数据库提供结果的地步,但是有相当多的行要提供(~5000-10000)。信息每 3 分钟才更改一次,因此实现某种形式的缓存也许是个好主意。
Revel 框架提供了一个缓存解决方案,但是我不知道这样的东西是如何工作的,也不知道它是否是解决我的问题的最佳方案。另一种解决方案可能是用结果制作一个全局数组,并偶尔抓取一个 slice (如果有很多用户,这会更好吗?)。
你们能帮帮我吗?我真的很感激。
最佳答案
在 revel 中添加
cache.memcached = true
cache.hosts="127.0.0.1:11211
到你的 conf/app.conf 并确保你已经安装了 memcached。然后导入 github.com/revel/revel/cache
并且在你的代码中你可以使用
var results []string
if err := cache.Get("res", &results); err == nil {
// use results
} else {
// do db query
cache.Set("results", results, 3*time.Minute)
}
关于database - 在 Golang 中缓存数据库结果( revel ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29472690/