database - 在 Golang 中缓存数据库结果( revel )

标签 database caching go revel

我目前正在借助 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/

相关文章:

android - 未能获取 FirebaseDatabase 实例。在 FirebaseApp 中指定 DatabaseURL

node.js - Node.js 中的 LRU 缓存

php - 停止缓存页面的特定元素

java - 用guava缓存维护多个索引(内存表)

http - 如何将数据返回给 channel 的发送者

c - 编码(marshal)处理/解封处理与序列化/反序列化之间有什么区别?

php - PHP 连接服务器失败

java - 如何使用Amazon DynamoDB存储空间数据?

mysql - 如何优化以下 SQL 查询?

image - 更改像素值,保存并再次读取返回原始颜色