我目前正在借助 revel Web 框架在 Go 中编写一个 Web 应用程序。我已经到了要从数据库中提供结果的地步,但是要提供的行数很多(〜5000-10000)。信息仅每 3 分钟更改一次,因此实施某种形式的缓存也许是个好主意。
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)
}