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

Revel框架提供了一个缓存解决方案,但是我不知道这种事情如何工作以及它是否是解决我的问题的最佳解决方案。另一个解决方案可能是使用结果创建一个全局数组并偶尔抓取一个切片(如果有很多用户,这样做会更好吗?)。

你们能帮我吗?非常感谢。

  • 你读过文件吗?首先从缓存读取,如果没有缓存,则从db读取,然后设置缓存。如果更新,也更新缓存。
  • 您可以使用redismemcached。例
  • 您可以尝试EnableCache吗?它是我的团队目前在巴西电子商务系统中使用的缓存库。我最近将实现放在GitHub上。希望对您有所帮助!让我知道这是否适合您的情况。 github.com/darciopacifico/enablecache

在启示录中添加

1
2
cache.memcached = true
cache.hosts="127.0.0.1:11211

访问conf / app.conf,并确保已安装memcached。然后导入github.com/revel/revel/cache,并在您的代码中使用

1
2
3
4
5
6
7
var results []string
if err := cache.Get("res", &results); err == nil {
  // use results
} else {
  // do db query
  cache.Set("results", results, 3*time.Minute)
}